0
親プロセスと子プロセスの間で、その中のいくつかのEvent()変数でdictを共有したいのですが、プロセスが開始された後、私は(キー、値)を追加または削除する必要があることに注意してください。以下のような通常のdictもmultiprocessing.Manager.dictも私の要求を満たすことはできないようです。Pythonは親プロセスと子プロセスの間でEvent()変数を使用してdictを共有しています
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メッセージ:( '#RETURN'、)"を取得します。 –
nicklhy
二重にチェックして、 'fun __main __ ':' if __name__ == 'を追加してください。 – Udi
このコードは私のラップトップに同じエラーメッセージでクラッシュしました。 Python2.7を使っています。 – nicklhy