您好,登錄后才能下訂單哦!
這篇文章主要介紹python3爬蟲中使用join有什么優勢,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
沒有join的時候,同時出現多個線程的情況
import time def thread_job(): """工作內容:先打印出“T1 start”,然后每走一步休息0.1秒,最后print做完了""" print("T1 start\n") for i in range(10): time.sleep(0.1) print("T1 finishes\n") def main2(): # 添加的線程,同時給他定義一個工作,通過target傳進去工作內容,同時給他命名是T1。 added_thread = threading.Thread(target=thread_job, name='T1') # 同時加上執行的語句 .start() 運行 added_thread.start() # 看看是不是等線程都運行完了、才回print all done print("All done \n") if __name__ == '__main__': main2()
運行結果是
T1 start All done T1 finishes
可以看到,沒有等到T1全部結束、就提前運行了all done,最后才是T1 finish。其實多線程是同時在進行的線程任務;如果某些時候想等到所有線程都完成之后、再進行其他的語句,那么需要用到join。
通過join強制所有的子線程結束后、再運行主線程
def thread_job(): """工作內容:先打印出“T1 start”,然后每走一步休息0.1秒,最后print做完了""" print("T1 start\n") for i in range(10): time.sleep(0.1) print("T1 finishes\n") def main3(): # 添加的線程,同時給他定義一個工作,通過target傳進去工作內容,同時給他命名是T1。 added_thread = threading.Thread(target=thread_job, name='T1') # 同時加上執行的語句 .start() 運行 added_thread.start() # 等到所有線程都結束,再運行print("All done \n"),需要通過join進行攔截 added_thread.join() # 看看是不是等線程都運行完了、才回print all done print("All done \n") if __name__ == '__main__': main3() 運行結果 T1 start T1 finishes All done
以上是“python3爬蟲中使用join有什么優勢”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。