建立乙個簡單的多程序任務只需要5步:
1.建立任務的函式,準備多執行緒呼叫
2.建立程序池,並指定程序池中線程的個數
3. 程序池呼叫步驟1建立的函式,開啟程序執行任務
4.關閉程序池 pool.close()
5.判斷是否需要等待所有程序結束再執行主函式pool.join()
# coding=utf-8
from multiprocessing import process, pool
import os, sys, logging
from datetime import datetime
def worker(name):
print "worker, runing" + name + ": " + str(datetime.now())
a = [1,2,3]
sleep(2)
print "find_same_city, stop" + name + ": " + str(datetime.now())
return len(a)
if __name__ == "__main__":
pool = pool(processes=5) # 建立有5個程序的程序池
processes1 =
for i in range(10): # 將10個任務放入程序池執行
name = "程序%d:"%i
pool.close() # 關閉程序池,不可再往程序池放任務
pool.join() # join 執行緒池,目的是等待程序池中所有程序執行完再執行主程式
for res in processes1:
result = res.get() # 對佇列中的程序獲取返回值,即worker的return
print result
print "all over"
多程序有個坑就是如果返回值太大,任務在join之後會浪費很多時間(任務需要將各個程序的返回值copy乙份)。因此如果需要同步的資料太大,應盡量避免使用該方式同步。 python多程序 python多程序
當有多個非相關任務需要處理時,並行能大大提高處理速度。這裡簡要介紹python的multiprocessing模組。簡單多程序編寫 當我們任務數量確定而且比較少的時候,可以手動為每個任務指定乙個程序來執行。import multiprocessing as mp def f a print a if...
python多程序的坑 Python多程序相關的坑
python的multiprocessing模組實現了多程序功能,但官方文件上只有一些比較簡單的用法,主要是使用函式作為process的target,而如何在class中使用多程序並沒有多講解。google出兩篇比較詳細的文章,建議從它們入門 下面記錄一下自己這週在python多程序上碰到的坑 建立...
python多程序 Python多程序實踐
建立程序方式如下 可以通過lock鎖機制實現共享鎖,但比較常用的方式還是以上這些方式,效率更高,更安全。使用方式 構造 類方法 使用方式 構造 更多型別支援一般使用manager,支援的型別包括list,dict,namespace,lock,rlock,semaphore,boundedsemap...