python语法基础-并发编程-线程-其他
############### 信号量和事件 ############## # 信号量 # 信号量就是控制只能有n个线程能访问这段代码 # from threading import Semaphore,Thread # import time # def func(sem,a,b): # sem.acquire() # time.sleep(1) # print(a+b) # sem.release() # # sem = Semaphore(4) # for i in range(10): # t = Thread(target=func,args=(sem,i,i+5)) # t.start() # 事件: # 事件被创建的时候是false状态,这个false状态会导致wait被阻塞, # true状态的时候,wait就不阻塞了 # clear,设置为false # set,设置状态未false, # 上次举例的是红绿灯的例子, # 现在我们举一个例子,检测数据库的可连接情况 # 启动两个线程, # 第一个线程连接数据库, # 等待一个信号,告诉我们之间的网络是通的 # 第二个线程,检测和数据自己之间的网络是否是通的 # 通了之后把事件的状态改为true, import time,random from threading import Thread,Event def