아래 코드를 사용하여 다중 처리의 프로세스 함수를 사용하여 2 개의 함수를 동시에 실행하는 데 어려움을 겪고 있습니다. 결국 내 노력은 스크립트 본문 내에서 확인 될 타이머를 실행하는 것입니다. 시간이 완료되면 본체에서 종속 된 것보다 자체 작업이 트리거됩니다. 시간이 완료되지 않으면 다음 작업으로 넘어갑니다.Python 3 동시에 여러 함수 실행
내가 빌드와 맥북 프로에서 이것을 실행 해요 : 프로세서 이름 : 인텔 코어 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 초 타이머이며 완료되었습니다. 본질적으로, 나는 10 초 타이머를 테스트하기 위해 21 초를 기다려야 만합니다.
결과 : 첫번째 기능은 제 기능을 실행하기 전에 완료되는 경우, 두 번째 기능은 테스트 할 수 있도록 I해야 할 일
$ python Test.py
1
2
3
4
5
6
7
8
9
10
10TickerDone
Good to go!
병렬 이러한 두 가지 기능을 실행할 수있다.
어디로 잘못 가고 있습니까?
주에있는 문서, 내가 스레드와 프로세스를 대체 스레딩과 같은 일을 시도했지만 같은 결과가 있습니다. – danjmwalker
안녕하세요. Mark. 당신이 가지고있는 것처럼 쓰려고했지만 똑같은 결과가 나옵니다. – danjmwalker
P1 = Process (target = Timer (10), args = (10,)) P1.start() P2 = 프로세스 (대상 = 대기, 인수 = (11)) P2.start – danjmwalker