检查一个线程 / 从列表中移除
- 论坛
- 检查一个线程 / 从列表中移除
5 浏览
检查一个线程 / 从列表中移除
我有一个继承自Thread的线程。代码看起来有点像这样:
class MyThread(Thread): def run(self): # 进行一些操作 my_threads = [] while has_jobs() and len(my_threads) < 5: new_thread = MyThread(next_job_details()) new_thread.run() my_threads.append(new_thread) for my_thread in my_threads: my_thread.join() # 进行一些操作
所以在我的伪代码中,我检查是否有任务(比如数据库等),如果有一些任务,且正在运行的线程少于5个,就创建新线程。
然后,我检查我的线程,这就是我卡住的地方,我可以使用.join(),但我的理解是,它会等待线程完成,所以如果它检查的第一个线程仍在进行中,它会等待直到完成,即使其他线程已经完成了...
那么有没有办法检查线程是否完成,然后将其删除?
例如
for my_thread in my_threads: if my_thread.done(): # 处理结果 del (my_threads[my_thread]) ?? 那样会起作用吗...