我有一个布尔值,我想将它传递给正在执行来自不同模块的方法的不同线程。此布尔值充当取消标记,因此如果设置,线程应退出。它似乎是按值传递的,因为如果我在另一个线程中设置它,它在其他线程中不会改变。谢谢。
import module2
from threading import Thread
cancellationToken = False
def main:
thread2 = Thread(target = module2.method2, args (on_input, cancellationToken, ))
thread2.start()
...
thread2.join()
def on_input(command):
global cancellationToken
...
if(...):
cancellationToken = True
...
Run Code Online (Sandbox Code Playgroud)
module2 中的 method2 只是一个简单的无限 while 循环,它检查取消标记并响应用户输入。
def method2(on_input, cancellationToken):
while(True):
if(cancellationToken):
return
...
on_input(...)
Run Code Online (Sandbox Code Playgroud)