看来我在这里运气不好。。。很抱歉问你们。:(
我正努力做到以下几点:
import multiprocessing
import time
class TestClass(multiprocessing.Process):
def __init__(self):
super(TestClass, self).__init__()
print("Initializing the test class...")
self.VARIABLE = 0
def run(self):
while self.VARIABLE < 10:
print("Sleeping... Variable now: " + str(self.VARIABLE))
time.sleep(1)
def setVar(self, VALUE):
print("Setting new value from " + str(self.VARIABLE) + " to " + str(VALUE) + " ...")
self.VARIABLE = VALUE
if __name__ == "__main__":
TESTPROCESS = TestClass()
TESTPROCESS.start()
time.sleep(5)
TESTPROCESS.setVar(5)
time.sleep(5)
TESTPROCESS.setVar(10)
但是,在结果中,它不会更新自变量在run()中,但仅在setVar()中。在
^{pr2}$我想,“self”表示这是这个类/对象的“global”参数?在
即使将run()函数修改为具有“while true:-->break”循环,同样的问题仍然会发生。我的思维错误在哪里?在
提前谢谢。。。在
^{} 使
run()
方法在一个单独的进程中执行;这差不多就是全部的要点。因此,您没有一个TestClass
实例;您有两个实例,它们存在于不同的进程中。其中一个实例通过调用setVar
进行更新,而另一个实例(由于是不同的对象)没有更新。如果希望能够在进程之间进行通信,请查看pipes and queues。在相关问题 更多 >
编程相关推荐