Python 多线程复习

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的时候,要指定大小。


猜你喜欢

转载自blog.csdn.net/u012606764/article/details/78395694