python 的多線程執行速度

來源:互聯網
上載者:User

標籤:col   fun   ini   odi   cal   有一個   運行程式   multi   time()   

python 的多線程有點雞肋,適用情境有局限,單位時間多個核只能跑一個線程。

有泳池一個,四個泵,但只有一個人,一人只能開啟管理著其中一個,所以四個泵沒什麼用。但是,如果泵的工作時間與冷卻恢復是1:3(感謝inoahx指出,已改),那麼配置的利用率高達100%。
直接運行代碼single.py
#!/usr/bin/python3#-*- coding: utf-8 -*-# author:zhouchao# 功能:直接運行程式 計算時間import threadingimport sysimport mathimport timelists = [];for x in range(1,10000000):    lists.append(x);length = len(lists);for x in range(600):    step = math.ceil(float(length)/600)    minIndex = step * x    if minIndex + step > length :        maxIndex = length    else:        maxIndex = minIndex+step    print(lists[minIndex:maxIndex])    datetime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())     fileObject = open("time1.txt",‘a+‘);    fileObject.write(str(datetime)+"\n");    fileObject.close();

所需時間:134 s

 

開600 個線程運行同一代碼

multiThread.py

#!/usr/bin/python3#-*- coding: utf-8 -*-# author:zhouchao# 功能:600線程計算執行時間import threadingimport sysimport mathimport timelists = [];for x in range(1,10000000):    lists.append(x);def function(i):    global lists    length = len(lists);    step = math.ceil(float(length)/600)    minIndex = step * i    if minIndex + step > length :        maxIndex = length    else:        maxIndex = minIndex+step    print(lists[minIndex:maxIndex])    datetime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())     # datetime = str(lists[minIndex:maxIndex])    fileObject = open("time2.txt",‘a+‘);    fileObject.write(str(datetime)+"\n");    fileObject.close();threads = []for i in range(600):    t = threading.Thread(target=function , args=(i,))    threads.append(t)    t.start()    t.join()

所需時間:160 s 

 

python 的多線程執行速度

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.