线程中的条件和定时器
Posted whylinux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程中的条件和定时器相关的知识,希望对你有一定的参考价值。
1.线程中的条件
# 条件 # acquire release # wait # notify # 一个条件被创建之初,类似默认有一个False状态,False状态会影响wait,使wait一直处于等待状态 # notify(int数据类型). 造钥匙,当条件对象notify了,条件对象的wait就会解除阻塞,notify传递的参数是几,条件对象的wait就会解除几次阻塞 import time from threading import Condition # 导入线程条件模块 from threading import Thread def func(con, i): con.acquire() # 拿锁 print(‘线程%s‘ % i) con.wait() # 创建的10个线程都会阻塞在这,等到notify(num)造钥匙后,就会有num个线程解除阻塞在这里,con.release num次后,con条件又被阻塞在这里,钥匙不会归还 print(‘第%s个‘ % i) con.release() if __name__ == ‘__main__‘: con = Condition() # 创建一个线程条件 for i in range(10): t = Thread(target=func, args=(con, i)).start() while 1: num = int(input(‘>>>‘)) con.acquire() con.notify(num) # 条件调用notify造num把钥匙,有num把 con.release()
2.线程中的定时器
# 定时时间到后触发的线程 import time from threading import Timer def func(): print(‘被执行了‘) t = Timer(2, func) # 创建一个定时器,绑定的线程是func, start后2S后只会执行一次 t.start() print(‘haha‘)
以上是关于线程中的条件和定时器的主要内容,如果未能解决你的问题,请参考以下文章