博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
事件和信号量
阅读量:5240 次
发布时间:2019-06-14

本文共 826 字,大约阅读时间需要 2 分钟。

from threading import Thread,Semaphoreimport timedef func(sem,a,b):    sem.acquire()    time.sleep(0.5)    print(a+b)    sem.release()sem = Semaphore(4)t_lst = []for i in range(10):    t = Thread(target=func,args=(sem,i,i+5))    t.start()    t_lst.append(t)for t in t_lst: t.join()print('主线程')

 

import time,randomfrom threading import Thread,Eventdef connect_db(e):    count = 0    while count < 3:        e.wait(0.5)        if e.is_set() == True:            print('连接至数据库')            break        else:            count += 1            print('第%d次连接失败'%count)    else:        raise TimeoutError('连接超时')def check_web(e):    time.sleep(random.randint(0,3))    e.set()e = Event()t1 = Thread(target=connect_db,args=(e,))t2 = Thread(target=check_web,args=(e,))t1.start()t2.start()

 

转载于:https://www.cnblogs.com/kuraki/p/9621852.html

你可能感兴趣的文章
c3p0连接池
查看>>
gis bing map 资料参考
查看>>
LRU cache实现 -Java 转
查看>>
Perl模块的安装方法
查看>>
web-9. 动态网页与数据库
查看>>
C++ 头文件一览
查看>>
spark发现新词
查看>>
用mapreduce 处理气象数据集
查看>>
posix多线程有感--自旋锁
查看>>
《那些年啊,那些事——一个程序员的奋斗史》——104
查看>>
Centos 7防火墙firewalld开放80端口(转)
查看>>
博客园博客背景图片设置
查看>>
mysql客户首末单时间 group by用法_20160927
查看>>
python中的__new__方法
查看>>
[Java]通过java获取计算机名
查看>>
tensorflow mac安装方法
查看>>
enyo官方开发入门教程翻译一Getting Started之A Tour of Enyo
查看>>
Daily Scrum 10.9
查看>>
Parallel Programming-多消费者,多生产者同时运行并行
查看>>
hdu 2044-2050 递推专题
查看>>