event模拟数据库链接

时间:2021-12-09 19:11:30
from threading import Thread,Event,currentThread
import time
e = Event()
def conn_mysql():
count = 1
while e.is_set(): #没收到信号执行
if count>3: #超过三次,弹出错误
raise ConnectionAbortedError('尝试链接次数太多')
print('\33[45m%s 第%s次尝试'%(currentThread().getName(),count))
e.wait(timeout=1) #超时1秒链接
count+=1 #每次链接次数+1
print('\33[45m%s 链接到MySQL...'%(currentThread().getName())) #收到信号执行
def check_mysql():
print('\33[43m%s 检测到MySQL...'%(currentThread().getName()))
time.sleep(2)
e.set() #在睡眠2秒后发送信号
if __name__ == '__main__':
for i in range(3):
t = Thread(target=conn_mysql)
t.start()
t = Thread(target=check_mysql)
t.start()