如何一次运行两个无限循环 python 类



所以,我有两个具有两个无限循环的类函数的代码示例:

class Bot:
def __init__(self):
self.rocket = 0
def func1(self):
while True:
self.rocket += 1
def func2(self):
while True:
print(self.rocket)

我希望它们 func1 和 func2 同时工作。这只是一个例子,我不需要这样的解决方案:

class Bot:
def __init__(self):
self.rocket = 0
def func1(self):
while True:
self.rocket += 1
print(self.rocket)

因为我想要一个方法如何在类中运行两个具有无限循环的函数;)谢谢!我试过这个,但导致错误:

from multiprocessing import Process
class Bot:
def __init__(self):
self.rocket = 0
def func1(self):
while True:
self.rocket += 1
def func2(self):
while True:
print(self.rocket)
if __name__ == '__main__':
p1 = Process(target=func1)
p2 = Process(target=func2)
p1.start()
p2.start()
  1. 您需要一个Bot实例来调用func1func2
  2. 使用threading.Thread而不是multiprocessing.Process,要获取详细信息,请阅读线程和多处理模块之间有什么区别? ,这里要得到的重点是

    默认情况下,线程共享数据;进程不共享数据。

使用Process您只会看到0打印,func1进程将有自己的数据和更新rocket,并且func2进程将无法使用它,使用Thread他们将共享数据

if __name__ == '__main__':
from threading import Thread
b = Bot()
p1 = Thread(target=b.func1)
p2 = Thread(target=b.func2)
p1.start()
p2.start()

最新更新