0
나는, 이론적으로, 같은 시간에 어떻게 다중 통화 기능을 테스트 할 :파이썬 Multiproccess 동시에 실행되지 않습니다 내가 추적 코드가있는 경우 별도로
import multiprocessing as mp
import time
import numpy as np
def worker(word_id):
print('hello, my word id is {}'.format(word_id))
a = np.random.randint(0, 10)
print(a, 'id {}'.format(word_id))
if 6 < a < 10:
time.sleep(4)
print('hello again, id {}'.format(word_id))
elif 3 < a < 6:
time.sleep(3)
print('hello once more, id {}'.format(word_id))
else:
time.sleep(1)
print('hi, id {}'.format(word_id))
def main():
process = [mp.Process(target=worker, args=[i]) for i in range(5)]
for p in process:
p.start()
for p in process:
p.join()
if __name__ == '__main__':
main()
내가 실행할 때, 5 개 공정 것 작업자 함수를 별도로 호출하고이를 증명하기 위해 작업자에서 생성되는 무작위 값은 무작위입니다. 분명히 나는 그것이 동시에 실행하거나하지 않을 경우 모두 같은, 내가 말할 수없는 설정 한 임의의 값을
hello, my word id is 0
2 id 0
hello, my word id is 1
2 id 1
hello, my word id is 2
2 id 2
hello, my word id is 3
2 id 3
hello, my word id is 4
2 id 4
hi, id 3
hi, id 0
hi, id 1
hi, id 2
hi, id 4
:
그러나 난 그냥이 같은 동일한 값을 가지고? 아무도 그것을 분석하고 나에게 Python에서 다중 프로세스의 올바른 사용법을 줄 수 있습니다. (어쩌면 그것은 내 코드가 잘못되었습니다), 내 perpose 동시에 args 함께 함수를 실행하고 어떤 프로세스가 완료 알고 싶습니다.
답장을 보내 주신다면, random.random()은 실제로 임의의 값을 별도로 생성 할 수 있습니다. 왜 numpy하지 않는지 모르겠다. –
'다중 처리 '는'random.seed()'자체를 호출하는 것으로 보입니다. Numpy에 대해 동일한 작업을 수행해야합니다. (Numpy는 여기에 약간의 관계가 있습니다.) –
tnks, 몇 가지 실험을하겠습니다. –