我的情况是,我想将线程放入循环中,具体取决于线程中调用的函数之一中正在更改的变量。这就是我想要的。
error= 0
while( error = 0)
run_thread = threading.Thread(target=self.run_test,args=(some arguments))
if ( error = 0)
continue
else:
break
现在运行测试调用一个函数,比如 A 和 A 调用 B 和 B 调用 C。
def A()
B()
def B()
c()
def c()
global error
error = 1
这就是我想做的,但我无法解决这个问题。如果我尝试打印错误,则代码中出现错误。
有人可以帮我吗?
我是初学者,需要克服这个问题
error = False
def A():
B()
def B():
c()
def c():
global error
error = True
def run_test():
while not error:
A()
print "Error!"
import threading
run_thread = threading.Thread(target=run_test,args=())
run_thread.start()
但是,最好对线程进行子类化并重新实现 run(),并且还使用异常:
def A():
raise ValueError("Bad Value")
import threading
class StoppableThread(threading.Thread):
def __init__(self, *args, **kwargs):
self.stop = False
def run(self):
while not self.stop:
A() #Will raise, which will stop the thread 'exceptionally'
def stop(self): #Call from main thread, thread will eventually check this value and exit 'cleanly'
self.stop = True