Python 多线程复习
来源:互联网 发布:流星网络电视下载安装 编辑:程序博客网 时间:2024/06/03 19:24
Python 多线程4种方式同步:
1,Lock。
最简单的用法,对于一个全局变量,要修改或者读取前都记得lock.acquire下。然后用完就release下就好。
缺点:无法通知某个线程去执行,需要不停的询问查,是否可以获得锁了。
2,信号量:
就是一个计数器,他不i能<0,当<0时,则等待其他的线程release,此线程才可以使用。
然后使用方法和Lock一样。
3,条件变量:
等会某些条件发生,否则一直处于wait状态,类似PV模型。
不过不锁更加方便和好用。
可以认为condition维护了一个锁和waitting池,线程通过acquire获得condition变量,调用wait,则会释放condition内部锁并且进入blocked状态,同时wait池记录这
个线程。当调用notify时,condition对象会从waitting池中挑一个线程,通知他调用acquire尝试取到锁。
4,queue :
使用get 和put 方法来操作。 queue自动管理。空了则禁止get,阻塞。满了则自动禁止put。 所以初始化queue的时候,要指定大小。
阅读全文
0 0
- Python 多线程复习
- 复习多线程
- python复习
- python 复习
- python复习
- python复习
- 多线程程序复习001
- 多线程程序复习002
- 多线程程序复习003
- JAVA多线程复习
- java多线程复习转载
- Java复习_多线程
- java基础复习 多线程
- 多线程的复习
- ios--多线程复习笔记
- 多线程的复习整理
- JAVA复习笔记--------多线程
- 多线程复习提纲
- JAVA集合(容器)类知识点汇总
- HTTP协议进阶之缓存
- 如何利用C++的time头文件获取系统时间
- Android 下载文件通知栏显示进度条
- Minimum Transport Cost HDU
- Python 多线程复习
- Java 关于含有继承类的成员初始化过程讲解
- Java多线程——使用wait/notify实现生产者/消费者模式
- SDKjar从打包到混淆
- STM32 NVIC嵌套向量中断控制器函数分析
- 立方数(枚举)
- 获取drawable里的路径
- linux下利用valgrind工具进行内存泄露检测和性能分析
- HDU 1081 To The Max