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

Conditions can be used for this.

以下是填充骨架的示例:

class Me(threading.Thread):

def __init__(self):

threading.Thread.__init__(self)

#flag to pause thread

self.paused = False

# Explicitly using Lock over RLock since the use of self.paused

# break reentrancy anyway, and I believe using Lock could allow

# one thread to pause the worker, while another resumes; haven't

# checked if Condition imposes additional limitations that would

# prevent that. In Python 2, use of Lock instead of RLock also

# boosts performance.

self.pause_cond = threading.Condition(threading.Lock())

def run(self):

while True:

with self.pause_cond:

while self.paused:

self.pause_cond.wait()

#thread should do the thing if

#not paused

print 'do the thing'

time.sleep(5)

def pause(self):

self.paused = True

# If in sleep, we acquire immediately, otherwise we wait for thread

# to release condition. In race, worker will still see self.paused

# and begin waiting until it's set back to False

self.pause_cond.acquire()

#should just resume the thread

def resume(self):

self.paused = False

# Notify so thread will wake after lock released

self.pause_cond.notify()

# Now release the lock

self.pause_cond.release()

希望有所帮助.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值