python多线程库_Python多线程常用包对比
python由于本身的特質,不能實現真正的多核并行運算,但是有一些第三方庫較好地模擬了在多核環境下的并行運算,例如pp包以及multiprocessing,那么哪種更能充分利用多核心呢?
這里我簡單做下對比,首先放上結論:multiprocessing是最優秀的。
在實測過程中,我的CPU是4核8線程,multiprocessing能充分利用多核運算優勢,使得每一顆CPU核心的負載基本相當,并且能夠在8個進程核心上負載相當,總體上占滿CPU性能,而pp包只能利用好4顆物理核心,對剩下的4個虛擬核心基本無視。
下面的示例代碼,供大家運行參考:
import multiprocessing
import time
import pp
def func(N):
sum = 0
for i in xrange(N):
sum += i
return sum
if __name__ == "__main__":
multiprocessing.freeze_support()
start = time.clock()
for i in xrange(200000):
sum = func(10000)
print ">> normal: ", time.clock()-start
start = time.clock()
pool = multiprocessing.Pool(processes=8)
jobs = []
for i in xrange(200000):
jobs.append(pool.apply_async(func, (10000, )))
pool.close()
pool.join()
print ">> multiprocessing: ", time.clock() - start
start = time.clock()
jobs = []
job_server = pp.Server()
job_server.set_ncpus(8)
for i in xrange(200000):
jobs.append(job_server.submit(func, (10000, )))
job_server.wait()
print ">> pp: ", time.clock() - start
job_server.print_stats()
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的python多线程库_Python多线程常用包对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用java制作扑克牌_阿里三面被挂,幸获
- 下一篇: 地磅称重软件源码_【漯河衡器】浅谈地磅称