2016年3月27日 星期日

python multiprocessing卡住解決辦法

使用python開多個process平行運算時,可能要將最終結果放入某個list、dictionary或queue之類的回傳至主程式,這時候有機會出現子程序無法結束(terminate)的問題,不知道這是否和官方文件所說的問題一樣
https://docs.python.org/2/library/multiprocessing.html#pipes-and-queues
總之,若出現這種問題,不妨將所使用的list、dictionary或是queue改成manager版本的,用法上差不多,儘量使用class的界面來操作的話問題會比較少(例如不能使用ls=ls+[...],應該使用正常的ls.append(...)),因為manager是專門用來處理multiprocessing的module,大致上可以解決這些問題。

關於thread的簡易用法
http://puremonkey2010.blogspot.tw/2012/05/python-python.html

沒有留言:

張貼留言