我怎样才能更好地编写以下课程?例如,有一个很好的方法可以使两个标志is_alive和is_finished滑动吗?
Monitor(threading.Thread):
def run(self):
resource = Resource("com1")
self.alive = True
self.is_finished = False
try:
while self.alive:
pass # use resource
finally:
resource.close()
self.is_finished = True
def stop(self):
self.alive = False
while not self.is_finished:
time.sleep(0.1)
Run Code Online (Sandbox Code Playgroud)
这就是它.但是,您不需要is_finished,因为您可以使用以下join()方法:
Monitor(threading.Thread):
def run(self):
resource = Resource("com1")
self.alive = True
try:
while self.alive:
pass # use resource
finally:
resource.close()
def stop(self):
self.alive = False
self.join()
Run Code Online (Sandbox Code Playgroud)
如果你确实需要查找一个线程是否正在运行,你可以调用mythread.is_alive()- 你不需要自己设置它.
| 归档时间: |
|
| 查看次数: |
8061 次 |
| 最近记录: |