python模块学习(threading模块中的Barrier类)
来源:互联网 发布:深圳中科软件 编辑:程序博客网 时间:2024/06/02 06:57
学习版本3.5.2
Barrier类是设置了一个线程数量障碍,当等待的线程到达了这个数量就会唤醒所有的等待线程。
__init__(self, parties, action=None, timeout=None) parties障碍要求的线程数量 action设置了的话会在突破障碍的时候被某一个被唤醒的线程调用 timeout给之后的wait()设置了个默认的等待时间
wait(self, timeout=None) 当前线程进入阻塞状态
abort(self) 强行突破阻碍,所有正在等待的线程和要调用wait()方法的线程收到一个BrokenBarrierError异常
reset(self) 重置当前对象,所有正在等待的线程收到一个BrokenBarrierError异常
例子
#/usr/bin/python3# -*- utf-8 -*-#学习版本3.5.2import threadingimport timedef display(): print("放了你们")barrier = threading.Barrier(3,display)class Chick(threading.Thread): def run(self): while True: print(self.getName(),": 你抓不到我") time.sleep(1) print(self.getName(),": 好吧,你抓到我了") try: barrier.wait() except threading.BrokenBarrierError: print("BrokenBarrierError")if __name__ == "__main__": c1 = Chick(name="A") c2 = Chick(name="B") c3 = Chick(name="C") c1.start() c2.start() c3.start() time.sleep(2) #barrier.reset() print("main")
运行结果
A : 你抓不到我B : 你抓不到我C : 你抓不到我A : 好吧,你抓到我了C : 好吧,你抓到我了B : 好吧,你抓到我了放了你们B : 你抓不到我C : 你抓不到我A : 你抓不到我mainB : 好吧,你抓到我了C : 好吧,你抓到我了A : 好吧,你抓到我了放了你们A : 你抓不到我B : 你抓不到我C : 你抓不到我B : 好吧,你抓到我了C : 好吧,你抓到我了A : 好吧,你抓到我了放了你们...
阅读全文
0 0
- python模块学习(threading模块中的Barrier类)
- python模块学习(threading模块中的Thread类)
- python模块学习(threading模块中的Timer类)
- python模块学习(threading模块中的Condition类)
- python模块学习(threading模块中的Event类)
- python中的threading模块
- python模块学习(threading模块中的Lock类和RLock类)
- python模块学习(threading模块中的Semaphore类和BoundedSemaphore类)
- python多线程模块threading学习
- python模块学习(threading模块的方法)
- Python 多线程(threading模块)
- Python 多线程(threading模块)
- Python多线程(threading模块)
- python中的线程使用--threading模块
- Python学习笔记--BeautifulSoup、urllib、threading模块
- python多线程模块threading学习总结
- Python threading模块
- Python threading模块简介
- 用了一年wkwebview中遇到的坑
- JIT准时生产制造管理
- 0基础lua学习(十八)C调用Lua----02Lua堆栈
- Android-----WebView使用
- Hbase的shell操作
- python模块学习(threading模块中的Barrier类)
- 关于枚举类型的一些总结
- C语言 gets()和scanf()函数的区别
- C++利用系统时间产生的随机数
- C/C++中RAND_MAX的用法
- 蓝桥杯练习——C++输出阶乘的最右边一位非零数
- C++DFS方法全排列
- 简单的Java网络爬虫(获取一个网页中的邮箱)
- Java Swing简单的加法器