Python : threading跟multiprocessing
這篇先寫一點點
為了提醒我改天有空一定要整理一下這邊的觀念
為了跨平台
我選擇使用threading跟multiprocessing而非用select或是fork等等linux的機制
而目前我知道的是
兩者都有join(),用法蠻像是wati()的
等待該thread或process終止並加入呼叫join()的thread或process
重點是,跟wait()一樣,join()會block
但為了避點zombie process,處理multiprocessing的時候還是得用join
網路上有看到一招是開一個新的thread
在那個thread裡面用join()來等待multiprocessing的process
來做到non-blocking
然後終止thread跟multiprocess的方法
最直接的
就是用os._exit()來結束main thread或是main process
這個method是跨平台的
我實作的結果是
main thead 終止之後 child thread就終止了 (沒有很肯定
main process 終止之後 並行的process在linux就變成孤兒,在windows10他們直接不見了
好了,今天的筆記到此結束
希望有幫助未來遺忘這些的自己,以及需要的人
為了提醒我改天有空一定要整理一下這邊的觀念
為了跨平台
我選擇使用threading跟multiprocessing而非用select或是fork等等linux的機制
而目前我知道的是
兩者都有join(),用法蠻像是wati()的
等待該thread或process終止並加入呼叫join()的thread或process
重點是,跟wait()一樣,join()會block
但為了避點zombie process,處理multiprocessing的時候還是得用join
網路上有看到一招是開一個新的thread
在那個thread裡面用join()來等待multiprocessing的process
來做到non-blocking
然後終止thread跟multiprocess的方法
最直接的
就是用os._exit()來結束main thread或是main process
這個method是跨平台的
我實作的結果是
main thead 終止之後 child thread就終止了 (沒有很肯定
main process 終止之後 並行的process在linux就變成孤兒,在windows10他們直接不見了
好了,今天的筆記到此結束
希望有幫助未來遺忘這些的自己,以及需要的人
留言
張貼留言