欢迎选择我的课程,让我们一起见证您的进步~~
只要在 A 代碼 p.close() 之後加一句 p.join() 就是等效的。 p.close() 之后加一句 p.join() 就是等效的。
p.close()
p.join()
或者在 B 代码 p_fi.start() 之前加一句 p_fi.daemon = p_se.daemon = p_th.daemon = True
p_fi.start()
p_fi.daemon = p_se.daemon = p_th.daemon = True
dict_init_queue = Queue()
from multiprocessing import Manager manager = Manager() dict_init_queue = manager.Queue()
樓上說得對 再close之後,應該要有一個join 來等待執行結束
我是看了 https://github.com/shazow/workerpool 這個專案的程式碼 才知道的
只要在 A 代碼
p.close()
之後加一句p.join()
就是等效的。p.close()
之后加一句p.join()
就是等效的。或者在 B 代码
或在B 代碼p_fi.start()
之前加一句p_fi.daemon = p_se.daemon = p_th.daemon = True
p_fi.start()
之前加一句p_fi.daemon = p_se.daemon = p_th.daemon = True
也是等效的(這時B 代碼也不能正常運作)。樓上說得對 再close之後,應該要有一個join 來等待執行結束
我是看了 https://github.com/shazow/workerpool 這個專案的程式碼 才知道的