我正在創建一個類multiprocessing.Process
。 當進行一些測試時,我注意到當start()
被調用時,進程沒有開始。 經過一些測試後,似乎只有在__main__
模塊中執行了2行代碼之後,進程纔會啓動。在兩行代碼之後開始的Python進程
舉個例子
import multiprocessing
class Test(multiprocessing.Process):
def __init__(self, *args, **kwargs):
super(Test, self).__init__(*args, **kwargs)
print('created')
def run(self, *args, **kwargs):
super(Test, self).run(*args, **kwargs)
print('running')
sample = Test()
>>> created
sample.start()
pass # Did not start yet
pass # Will start after this
>>> running
我已經在不同的平臺進行了測試,它工作正常那裏。 我正在運行Windows 10,Python 3.5.2。 sys.version
的輸出是'3.5.2 |Continuum Analytics, Inc.| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)]'
你是否總是從python交互式會話運行?在執行代碼作爲命令行中的腳本時,它們是否一樣? – cdarke
無論是來自交互式會話,腳本還是導入模塊,它總是顯得相同。 – DeepHorizons