0
부모 프로세스와 자식 프로세스 사이에 Event() 변수와 함께 dict를 공유하려고하지만이를 알지 못합니다. 프로세스가 시작된 후에 키 또는 값을 추가하거나 삭제해야합니다. 그것은 정상 dict도 아래 multiprocessing.Manager.dict 내 요구 사항을 만족시킬 수없는 것 같습니다.Python은 부모 프로세스와 하위 프로세스 사이에 Event() 변수로 사전을 공유합니다.
import time
from multiprocessing import Process, Event, Manager
manager = Manager()
d1 = manager.dict()
# d1 = dict()
def fun():
# do something and then set d1[1]
time.sleep(4)
d1[1].set()
p = Process(target=fun, name='fun')
p.start()
d1[1] = Event() # add a (key, value) after the process is defined
p.join()
print 'After fun, d1[1] = %s' % (d1[1].is_set())
부모와 자식 프로세스간에 이러한 세마포를 공유하는 올바른 방법은 무엇입니까?
와
를 교체합니다. RemoteError 메시지 "Unserializable message : ('#RETURN',)"가 나타납니다. –
nicklhy
두 번 확인하고 'fun __main __':'__name__ == '을 추가하십시오. – Udi
이 코드는 랩톱에서 같은 오류 메시지와 함께 충돌합니다. 나는 Python2.7을 사용합니다. – nicklhy