繁体   English   中英

具有多处理功能的Python全局数组

[英]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()等待线程。

参见: https : //docs.python.org/2/library/threading.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM