這篇文章主要介紹python3爬蟲中使用join有什么優(yōu)勢(shì),文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
古丈網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),古丈網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為古丈超過千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的古丈做網(wǎng)站的公司定做!
沒有join的時(shí)候,同時(shí)出現(xiàn)多個(gè)線程的情況
import time def thread_job(): """工作內(nèi)容:先打印出“T1 start”,然后每走一步休息0.1秒,最后print做完了""" print("T1 start\n") for i in range(10): time.sleep(0.1) print("T1 finishes\n") def main2(): # 添加的線程,同時(shí)給他定義一個(gè)工作,通過target傳進(jìn)去工作內(nèi)容,同時(shí)給他命名是T1。 added_thread = threading.Thread(target=thread_job, name='T1') # 同時(shí)加上執(zhí)行的語句 .start() 運(yùn)行 added_thread.start() # 看看是不是等線程都運(yùn)行完了、才回print all done print("All done \n") if __name__ == '__main__': main2()
運(yùn)行結(jié)果是
T1 start All done T1 finishes
可以看到,沒有等到T1全部結(jié)束、就提前運(yùn)行了all done,最后才是T1 finish。其實(shí)多線程是同時(shí)在進(jìn)行的線程任務(wù);如果某些時(shí)候想等到所有線程都完成之后、再進(jìn)行其他的語句,那么需要用到j(luò)oin。
通過join強(qiáng)制所有的子線程結(jié)束后、再運(yùn)行主線程
def thread_job(): """工作內(nèi)容:先打印出“T1 start”,然后每走一步休息0.1秒,最后print做完了""" print("T1 start\n") for i in range(10): time.sleep(0.1) print("T1 finishes\n") def main3(): # 添加的線程,同時(shí)給他定義一個(gè)工作,通過target傳進(jìn)去工作內(nèi)容,同時(shí)給他命名是T1。 added_thread = threading.Thread(target=thread_job, name='T1') # 同時(shí)加上執(zhí)行的語句 .start() 運(yùn)行 added_thread.start() # 等到所有線程都結(jié)束,再運(yùn)行print("All done \n"),需要通過join進(jìn)行攔截 added_thread.join() # 看看是不是等線程都運(yùn)行完了、才回print all done print("All done \n") if __name__ == '__main__': main3() 運(yùn)行結(jié)果 T1 start T1 finishes All done
以上是“python3爬蟲中使用join有什么優(yōu)勢(shì)”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!