當前位置:首頁 » 編程語言 » python線程參數

python線程參數

發布時間: 2025-04-22 17:01:01

A. Python多線程編程之線程結束

線程管理包括線程創建、線程啟動、線程休眠、等待線程結束和線程停止。線程創建、線程啟動、線程休眠前文已提到過,這里不再贅述。

1 等待線程結束

等待線程結束使用的是join()方法,當前線程調用t1線程的join()方法時則阻塞當前進程,等待t1線程結束。如果t1線程結束或等待超時,則當前線程回到活動狀態繼續執行。join()方法語法如下:

join(timeout=None)

參數timeout是設置超時時間,單位是s。如果沒有設置timeout,則可以一直等待

當一個線程依賴於另一個線程的運行結果時,就可以調用另一個線程的join()方法等待它運行完成

example:

_value=0defthread_body():globalshared_valueprint('ThreadA開始......')for_inrange(5):print('ThreadA執行中......')shared_value+=1time.sleep(1)print('ThreadA結束......')defmain():print('主線程開始......')t1=threading.Thread(target=thread_body,name='ThreadA')t1.start()print('主線程被阻塞......')t1.join()print(f'value={shared_value}')print('主線程繼續執行......')

result:

主線程開始......ThreadA開始......主線程被阻塞......ThreadA執行中......ThreadA執行中......ThreadA執行中......ThreadA執行中......ThreadA執行中......ThreadA結束......value=5主線程繼續執行......

這里設置了一個共享變數shared_value,線程主體中對該變數進行了修改。在主函數裡面調用了t1的join()方法,就會導致主線程阻塞,等待線程t1執行結束,主線程才會繼續執行。從結果來看,主線程缺失被阻塞了,列印出來的shared_value的值已經由0變成5了

2 線程停止

對於有些復雜業務,需要設置一個線程停止變數來決定線程停止。例如,有一個抓取數據的系統,每隔半小時獲取執行一次數據抓取任務。數據抓取任務一般在子線程中進行,休眠一段時間再執行。這個子線程中國會有一個死循環。為了能停止子線程,應設置一個線程停止變數

example:

importthreadingimporttimeis_running=Truedefthread_body():whileis_running:print('ThreadA開始......')#數據抓取任務print('ThreadA執行中......')time.sleep(1)print('ThreadA結束......')print('整個程序執行完成')defmain():print('主線程開始......')t1=threading.Thread(target=thread_body)t1.start()command=input('請輸入停止指令:')ifcommand=='exit':globalis_runningis_running=Falseif__name__=='__main__':main()

result:

主線程開始......ThreadA開始......ThreadA執行中......請輸入停止指令:exitThreadA結束......整個程序執行完成

這里設置了一個線程停止變數is_running,默認值為True.當用戶通過鍵盤在控制台輸入exit時,其值變為False,然後程序終止。需要注意的是,控制台輸入exit後,還需要按enter鍵才可以。

熱點內容
段式編譯器 發布:2025-04-22 20:15:45 瀏覽:202
android原版 發布:2025-04-22 20:15:04 瀏覽:74
特種兵一個組怎麼配置 發布:2025-04-22 20:01:15 瀏覽:733
oracle資料庫命令 發布:2025-04-22 19:47:55 瀏覽:564
python異或運算符 發布:2025-04-22 19:45:21 瀏覽:832
網路為什麼改不了伺服器 發布:2025-04-22 19:44:38 瀏覽:535
js壓縮base64 發布:2025-04-22 19:29:53 瀏覽:200
颶風加密工具 發布:2025-04-22 19:27:50 瀏覽:640
發票江蘇伺服器地址 發布:2025-04-22 19:21:29 瀏覽:34
編譯器路徑錯誤 發布:2025-04-22 18:53:30 瀏覽:39