正確使用 Multiprocessing 的姿勢

2021-09-10 03:44:40 字數 737 閱讀 6401

import multiprocessing as mp		

# 要執行的任務函式

def task(pid, name):

print("pid:", pid, "name:", name)

return str(pid) + ":" + name

def main():

pool = mp.pool()

cpus = mp.cpu_count()

res_list = list()

# for i in range(0, 6):

for i in range(0, cpus):

pool.close()

pool.join()

print(res_list)

# 如果提交的多於四個任務,那麼每個核就需要同時執行2個以上的任務,帶來任務切換的成本,降低了效率。

# 所以我們設定的並行任務數量最好等於cpu的核心數

# 使用res.get()來獲取task的返回值

new_list = list()

for res in res_list:

print(new_list)

# 為什麼不在for迴圈中直接 res.get()?

# 實際上,獲取返回值的過程最好放在程序池**之後進行,避免阻塞之後的語句

if __name__ == "__main__":

main()

正確使用記憶體

對於初學者來說,記憶體是個神秘的空間。程式的絕大部分錯誤,也是在於記憶體的使用不當造成的,而且這些錯誤有些都是隱藏很深的。所以,如何掌握記憶體的使用,通曉系統對記憶體的管理手段,將是軟體成功的乙個非常關鍵的因素。首先我們要了解記憶體的分配方式。一般來說,記憶體的分配方式有三種 1 從靜態儲存區域分配...

Calendar 正確使用

public static void main string args calendar cal calendar.getinstance cal.settime new date 當前年 int year cal.get calendar.year 當前月 int month cal.get ca...

正確使用記憶體

對於初學者來說,記憶體是個神秘的空間。程式的絕大部分錯誤,也是在於記憶體的使用不當造成的,而且這些錯誤有些都是隱藏很深的。所以,如何掌握記憶體的使用,通曉系統對記憶體的管理手段,將是軟體成功的乙個非常關鍵的因素。首先我們要了解記憶體的分配方式。一般來說,記憶體的分配方式有三種 1 從靜態儲存區域分配...