如何從Python中的多處理模塊中確定當前進程是父進程還是子進程?如何確定當前運行的進程是否爲父進程?
具體來說,我在導入的模塊中有一些代碼行,只需要運行一次 - 當代碼第一次運行時(即不會運行子進程啓動的時間,並導入該模塊)。
在主模塊中,我能夠使用if __name__ == '__main__':
來實現此目的,但是這在導入的模塊中不起作用。
在相關的,當前的代碼情況包括:
import multiprocessing as mp
pool = mp.Pool(processes=7, maxtasksperchild=1)
all_items = [pool.apply_async(sub_process, args=(value,) for value in all_values]
for item in all_items:
item.get()
你的問題讓我困惑。在這種情況下'__name__'是一種紅鯡魚。在函數'sub_process'中,你在一個子進程中。在這個函數之外,你在父進程中。你爲什麼不問你想達到什麼? – RobertB
@RobertB - 相應地編輯問題。 – kyrenia
您可以將代碼分隔成獨立的功能,如「設置」。那麼你在啓動你的進程之前調用'module1.setup()'? – RobertB