use*_*899 25 python python-multithreading
我见过很多在一个类中使用Threads的Python脚本,其中很多都使用了threading.Event().例如:
class TimerClass(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.event = threading.Event()
def run(self):
while not self.event.is_set():
print "something"
self.event.wait(120)
Run Code Online (Sandbox Code Playgroud)
在while循环中,为什么他们检查条件是否没有设置self.event?
Vik*_*kez 34
因为别人会设置它.
您通常在应用程序的一个部分中启动一个线程并继续执行您所做的任何事情:
thread = TimerClass()
thread.start()
# Do your stuff
Run Code Online (Sandbox Code Playgroud)
线程做它的东西,而你做你的东西.如果你想终止你刚刚调用的线程:
thread.event.set()
Run Code Online (Sandbox Code Playgroud)
线程将停止.
所以答案是:在这种情况下,事件不用于从线程对象本身内部控制线程.它用于从外部控制线程(从保存线程引用的对象).
| 归档时间: |
|
| 查看次数: |
35942 次 |
| 最近记录: |