0
在我的Python脚本中,我接收到一个持续的数据流,但想通过调用异步方法异步地推送数据。当方法可用时,存在于缓冲区中的数据总是被按下。Python - 通过线程管理异步方法
为了达到这个目的,我有一个不断被调用的try/catch函数,它创建一个执行方法的线程对象(当方法执行完成时我会返回),并且如果线程正在运行try/catch break 。
import thread
import threading
thr = None
...
try:
if thr.is_alive():
print "thread running"
else:
thr.Thread(target=move_current_data, args=(data_buffer))
thr.start()
data_buffer.clear()
except NameError:
print ""
except AttributeError:
print "
def move_current_data(data_buffer):
...
return
会有更容易和更清洁的方式来写这个吗?
如果需要
我可以多次调用t = threading.Thread和t.start()吗?有时候可能没有数据,但我不希望线程退出 – BDillan
在我的代码中,推送器线程不会退出,除非您将None值置于队列中。因此,在程序准备退出之前,不要将None值放入队列中。当没有数据时,推送器线程会阻止“get”调用。 – ErikR