基本的に 'refresh'はキャッシング関数ですが、 'printer'は結果を出力するためのものです。 この例題は明らかにいくつかの点で失敗します。残念ながら、pythonのドキュメントはそれを助けません。 説明以外にも、作業コードが高く評価されます。 refresh
でPythonマルチプロセッシングでの共有変数
from multiprocessing import Manager, Process
from random import randrange
import time
manager = Manager()
x = manager.list()
def refresh():
global x
while True:
y = []
for i in range(5):
y.append(randrange(100))
x = y
time.sleep(0.2)
def printer():
while True:
global x
print(x)
# Mind the different interval compared to 'refresh'
time.sleep(0.3)
if __name__=='__main__':
p = Process(target=refresh)
p.start()
p1 = Process(target=printer)
p1.start()
何が失敗しますか?何らかのエラーが発生しましたか?期待どおりに機能していなかったのでしょうか?ドキュメントが役に立たなかったのはなぜですか? – larsks
2つのプロセス間で変数を共有できません。 – user8491711