姬長信(Redy)

python – 我可以暂停和恢复的线程?


我正在尝试创建一个在后台执行操作的线程.我需要能够在需要时有效地“暂停”它,并在以后再次“恢复”它.此外,如果线程在我“暂停”它时正在做某事,它应该让调用线程等到它完成它正在做的事情.

我对Python中的多线程很新,所以我还没有那么远.

除了让调用线程等待,如果在我的线程正在执行某些操作时调用暂停,我几乎可以做的事情.

以下是我在代码中尝试实现的概述:

import threading, time

class Me(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        #flag to pause thread
        self.paused = False

    def run(self):
        while True:
            if not self.paused:
                #thread should do the thing if
                #not paused
                print 'do the thing'
                time.sleep(5)

    def pause(self):
        self.paused = True
        #this is should make the calling thread wait if pause() is
        #called while the thread is 'doing the thing', until it is
        #finished 'doing the thing'

    #should just resume the thread
    def resume(self):
        self.paused = False

我想我基本上需要一个锁定机制,但在同一个线程内?