python多线程库_Python多线程常用包对比
python由于本身的特質(zhì),不能實現(xiàn)真正的多核并行運算,但是有一些第三方庫較好地模擬了在多核環(huán)境下的并行運算,例如pp包以及multiprocessing,那么哪種更能充分利用多核心呢?
這里我簡單做下對比,首先放上結(jié)論:multiprocessing是最優(yōu)秀的。
在實測過程中,我的CPU是4核8線程,multiprocessing能充分利用多核運算優(yōu)勢,使得每一顆CPU核心的負載基本相當(dāng),并且能夠在8個進程核心上負載相當(dāng),總體上占滿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位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的python多线程库_Python多线程常用包对比的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用java制作扑克牌_阿里三面被挂,幸获
- 下一篇: qt designer python显示