我正努力使用下面的代碼使用Multiprocessing的Process函數同時運行2個函數。我最後的努力是運行一個定時器,它將在腳本的主體內部進行檢查。如果時間已經完成,主體中的依賴關係會觸發自己的行爲。如果時間沒有完成,它會轉到下一個動作。Python 3同時運行多個函數
我在MacBook Pro上與構建運行以下命令: 處理器名稱:Intel酷睿2雙核處理器 速度:1 核心總數:2
腳本2.66 GHz的 處理器數量:
#!/usr/bin/pyton
# MODULES
import time
from multiprocessing import Process
# GLOBAL VARIABLES
Completion = ''
# FUNCTIONS
def Timer(duration):
global Completion
Ticker = 0
while Ticker != duration:
Ticker = Ticker + 1
print(Ticker)
time.sleep(1)
Completion = '{0}TickerDone'.format(duration)
def Wait(seconds):
time.sleep(seconds)
#MAIN
P1 = Process(target = Timer(10))
P1.start()
P2 = Process(target = Wait(11))
P2.start()
P1.join()
P2.join()
print(Completion)
if Completion == '10TickerDone':
print('Good to go!\n')
else:
print('Not yet!\n')
# END
兩個功能做什麼是例外,然而第二功能,其旨在以等待10個+ 1 secondards用於第一功能的完成,僅開始一旦第一功能,10秒計時器,是完成。所以,在本質上,我必須等待21秒來測試10秒計時器。
結果:
$ python Test.py
1
2
3
4
5
6
7
8
9
10
10TickerDone
Good to go!
我需要做的是在並行運行這兩個功能,所以如果第一個功能是執行第三功能之前完成第二功能可以測試了。
我哪裏錯了?
注意的文件,我嘗試同樣的事情線程,線程與進程替換,但有相同的結果。 – danjmwalker
嗨馬克,我確實嘗試寫出來,因爲你有它,但我得到相同的結果。 (), – danjmwalker
P1 =過程(目標=定時器(10),參數=(10,)) P2.start() P2 =過程(目標=等待,參數=(11,)) P2.start – danjmwalker