欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python并行處理任務時 該用多進程?還是該用多線程?

系統 1822 0

在python并行處理任務時要使用多線程還是多進程? 說到這個話題,必須要提的GIL( Global Interpreter Lock)全局解釋鎖,當Cpython每次執行字節碼時都要先申請這個鎖。那么問題就來了,如果使用多線程是比也會受到影響。

? ? ? ?多線程和多進程程序比較,哪個性能更高?還是拿一個實例運行來看看吧~?

?

            
              #寫一個簡單的例子,計算100W個隨機數的和8次,同時將分散到8個線程進行運算。
#thread.py

#!/usr/bin/env python

import random
import threading

results = []

def compute():
    results.append(
        sum([random.randint(1,100) for i in range(1000000)]))

def main():        
    workers = [threading.Thread(target(compute) for  x in range(8))]

    for worker in workers:
        worker.start()
    
    for woker in workers:
        worker.join()
    print("Result: %s" % results)
   
   
if __name__  == "__main__":
    main()
    

    
#相同的功能,使用多進程來實現
#worker.py

#!/usr/bin/env python

import multiprocessing
import random

def compute(n):
    return sum(
        [random.randint(1,100) for i in range(1000000)])
        
def main():
    pool = multiprocessing.Pool(8)
    print("Results: %s" % pool.map(compute, range(8)))
    
if __name__ == "__main__":
    main()
            
          

?

?兩個代碼片段已經寫完了,接下來我找了三種配置的機器來運行這兩段代碼:

?

配置1 ? ? ? 1Core ? ? ? ? ? ? ?2GB內存

配置2

? ? ? 4Core ? ? ? ? ? ? ?8GB內存
配置3 ? ? ? 48Core ? ? ? ? ? ? ?64GB內存

?

實驗1:

兩端代碼同時在1Core 2GB機器上運行,查看運行結果:

?

python并行處理任務時 該用多進程?還是該用多線程?_第1張圖片

從運行結果來看,多線程的程序比多進程的程序效率要高,使用cpu都是99%(由于機器只有一個Core,多進程沒有體現它的價值)。

?

實驗2:

兩段代碼同時在4Core 8GB內存機器上運行,查看運行結果:

?

python并行處理任務時 該用多進程?還是該用多線程?_第2張圖片

從運行結果來看,多進程程序效率比多線程程序效率要高1倍還要多。cpu使用上多線程卡在了141%,多進程跑到了379%,這里體現出多進程的優勢。

?

實驗3:

兩段代碼同時在48core 64GB內存機器上跑,查看運行結果:

?

python并行處理任務時 該用多進程?還是該用多線程?_第3張圖片

從運行結果來看,多進程程序cpu可以跑到715%(程序設置了開啟8個worker進程,所以不會超過800%),而多線程卡在了124%。

?

通過以上測試結果,已經可以得出。 python下多進程程序要比多線程程序要高效。并且會隨著Core數不斷的增加,性能也會得到提升。

?

所以考慮在一定的時間內并行處理一些工作時,最好依靠多進程創建多個作業,以便在多個cpu之間分散負載。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美日韩一区二区三区在线观看 | 妞干网在线免费观看 | 狠狠色噜噜狠狠狠狠米奇7777 | 日本妇人成熟免费不卡片 | 亚洲精品国产成人 | av播放在线 | 免费在线亚洲视频 | 毛片毛片毛片毛片毛片怎么 | 久热香蕉精品视频在线播放 | 国产一区二区自拍 | 欧美三区在线 | 2022国产成人精品福利网站 | 久久久久久久蜜桃 | 日本成人在线网站 | 大毛片 | 欧美成人做性视频在线播放 | 亚洲视频在线看 | 国产午夜永久福利视频在线观看 | 天天干天天操 | 九九99久久精品在免费线bt | 婷婷激情综合色五月久久竹菊影视 | 午夜亚洲国产成人不卡在线 | 综合爱爱| 人人爱天天做夜夜爽 | 日韩视频在线一区 | 久久精品免费一区二区三 | 欧美不卡 | www.中文字幕在线观看 | 亚洲一区二区三区高清网 | 手机看片国产日韩 | 一级成人毛片免费观看欧美 | 国产在线毛片 | 亚洲欧洲日本天天堂在线观看 | 12345国产精品高清在线 | 光根电影院 | 亚洲国产成a人v在线 | 成年人在线视频网站 | 韩日美无码精品无码 | 91在线免费观看 | 国产成人综合一区精品 | 香港午夜三级a三级高清观看 |