[英]Python global array with multiprocessing
请考虑以下代码:
from multiprocessing import Process
import time
myArray = []
def myThread():
counter = 0
global myArray
while True:
myArray.append(counter)
time.sleep(1)
counterThread = Process(target=myThread,)
counterThread.start()
while True:
if len(myArray) > 0:
print "Success"
else:
print ":("
print myArray
time.sleep(1)
我无法获得成功消息,并且我不确定为什么,我继续收到:(
并且我的终端打印了一个空数组。我认为将数组设置为全局意味着将应用在myThread()
级别进行的任何更改吗?
您正在创建第二个流程,该流程无法访问主流程的数据。 您可以使用threading.Thread(target = myThread,),但如果使用多个线程,则必须同步访问threading.Lock()。
完成后,应该终止线程,并使用athread.join()等待线程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.