新聞中心
1、線程的join()方法表示等這個線程運行完畢,程序再往下運行。我們來看下面的例子

創(chuàng)新互聯(lián)專注于企業(yè)全網整合營銷推廣、網站重做改版、阜平網站定制設計、自適應品牌網站建設、成都h5網站建設、購物商城網站建設、集團公司官網建設、成都外貿網站建設、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為阜平等各大城市提供網站開發(fā)制作服務。
from threading import Thread t = time.time() for _ in range(5): th = Thread(target = myfun) th.start() th.join()print(time.time() - t) # 結果為 5.0047078132629395 秒
2、這里start()之后馬上join(),表示每一個線程都要運行結束才能進行下一次循環(huán),這樣就和沒有使用多線程沒有區(qū)別了。不過如果要計算多線程運行時間卻是要用到這個join()
我們先看一下不用join()的情況
from threading import Thread t = time.time() for _ in range(5): th = Thread(target = myfun) th.start()print(time.time() - t) # 結果為 0.0009980201721191406 秒
3、它連1秒都沒有等,就輸出了結果,而且5個2是在打印出這個之后才輸出出來的。這是因為print(time.time() - t)是區(qū)別于那5次循環(huán)線程之外的第6個線程,它不會等待5個線程運行結束就會開始運行。所以這樣是無法獲得上面5個線程的運行時間的,我們需要用join()等待5個線程都運行結束。
代碼如下
from threading import Thread t = time.time()ths = [] for _ in range(5): th = Thread(target = myfun) th.start() ths.append(th)for th in ths: th.join()print(time.time() - t # 結果為 1.0038363933563232
join()不只是用于這種情形。當一步代碼運行依賴之前代碼運行完成時,就要加入join()命令。
以上就是python多線程中join的應用場景,希望能對大家有所幫助。更多Python學習指路:創(chuàng)新互聯(lián)python教程
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。
分享名稱:創(chuàng)新互聯(lián)Python教程:python多線程中join的應用場景
網站網址:http://www.dlmjj.cn/article/djedjgg.html


咨詢
建站咨詢
