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他們直接不見了

好了,今天的筆記到此結束
希望有幫助未來遺忘這些的自己,以及需要的人


留言

這個網誌中的熱門文章

python的list與numpy的array和matrix的關係