在Python中管理线程执行

时间:2018-10-08 19:42:11

标签: python multithreading python-multithreading

我目前正在Python中使用工作线程从队列中获取任务并执行任务,如下所示:

from queue import Queue
from threading import Thread

def run_job(item)
    #runs an independent job...
    pass    

def workingThread():
    while True:
        item = q.get()
        run_job(item)
        q.task_done()

q = Queue()
num_worker_threads = 2

for i in range(num_worker_threads):
    t = Thread(target=workingThread)
    t.daemon = True
    t.start()

for item in listOfJobs:
    q.put(item)

q.join()

这是功能性的,但是有一个问题: run_job 函数下要执行的某些作业对内存的要求很高,并且只能单独运行。鉴于我可以在运行时识别出这些错误,那么如何管理并行工作线程以中止它们的执行,直到完成上述工作为止?

编辑:它被标记为Python - Thread that I can pause and resume的可能重复项,我在问之前已经提到了这个问题,并且肯定是必须引用的参考。但是,我认为它不专门解决这种情况,因为它既不考虑队列中的作业,也不考虑如何专门指向其他必须暂停的对象。

1 个答案:

答案 0 :(得分:0)

我将暂停/恢复线程,以便它们分别运行。 以下线程 Python - Thread that I can pause and resume指示如何执行此操作。