日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

线程与进程的一些应用

發布時間:2024/9/5 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线程与进程的一些应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#分析: 我們有四個任務需要處理,處理方式肯定是要玩出并發的效果,解決方案可以是: 方案一:開啟四個進程 方案二:一個進程下,開啟四個線程#單核情況下,分析結果: 如果四個任務是計算密集型,沒有多核來并行計算,方案一徒增了創建進程的開銷,方案二勝如果四個任務是I/O密集型,方案一創建進程的開銷大,且進程的切換速度遠不如線程,方案二勝#多核情況下,分析結果:如果四個任務是計算密集型,多核意味著并行計算,在python中一個進程中同一時刻只有一個線程執行用不上多核,方案一勝如果四個任務是I/O密集型,再多的核也解決不了I/O問題,方案二勝#結論:現在的計算機基本上都是多核,python對于計算密集型的任務開多線程的效率并不能帶來多大性能上的提升,甚至不如串行(沒有大量切換),但是,對于IO密集型的任務效率還是有顯著提升的。

  

1 from multiprocessing import Process 2 from threading import Thread 3 import threading 4 import os,time 5 def work(): 6 time.sleep(2) 7 print('===>') 8 9 if __name__ == '__main__': 10 l=[] 11 print(os.cpu_count()) #本機為4核 12 start=time.time() 13 for i in range(400): 14 # p=Process(target=work) #耗時12s多,大部分時間耗費在創建進程上 15 p=Thread(target=work) #耗時2s多 16 l.append(p) 17 p.start() 18 for p in l: 19 p.join() 20 stop=time.time() 21 print('run time is %s' %(stop-start)) I/O密集型:多線程效率高 1 from multiprocessing import Process 2 from threading import Thread 3 import os,time 4 def work(): 5 res=0 6 for i in range(100000000): 7 res*=i 8 9 10 if __name__ == '__main__': 11 l=[] 12 print(os.cpu_count()) #本機為4核 13 start=time.time() 14 for i in range(4): 15 p=Process(target=work) #耗時5s多 16 p=Thread(target=work) #耗時18s多 17 l.append(p) 18 p.start() 19 for p in l: 20 p.join() 21 stop=time.time() 22 print('run time is %s' %(stop-start)) 計算密集型:多進程效率高

轉載于:https://www.cnblogs.com/52-qq/p/7453125.html

總結

以上是生活随笔為你收集整理的线程与进程的一些应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。