python 函数记录

1.time.sleep(t)

   time.sleep(t)函数推迟调用线程的运行,可通过参数 t 指定秒数,表示进程挂起的时间。

2.lock = threading.RLock()和lock = threading.Lock()

锁有两种状态:被锁(locked)和没有被锁(unlocked)。拥有acquire()和release()两种方法,并且遵循一下的规则:

如果一个锁的状态是unlocked,调用acquire()方法改变它的状态为locked
如果一个锁的状态是locked,acquire()方法将会阻塞,直到另一个线程调用release()方法释放了锁;
如果一个锁的状态是unlocked调用release()会抛出RuntimeError异常;
如果一个锁的状态是locked,调用release()方法改变它的状态为unlocked。

lock = threading.RLock()递归锁和lock = threading.Lock() :这两种琐的主要区别是:RLock允许在同一线程中被多次acquire。而Lock却不允许这种情况。注意:如果使用RLock,那么acquire和release必须成对出现,即调用了n次acquire,必须调用n次的release才能真正释放所占用的锁

为什么要加锁:每个线程在要修改公共数据时,为了避免自己在还没改完的时候别人也来修改此数据,可以给这个数据加一把锁, 这样其它线程想修改此数据时就必须等待你修改完毕并把锁释放掉后才能再访问此数据。

3.pool=Pool(5) 

   pool=Pool(5) 创建一个有5个进程的进程池

原文地址:https://www.cnblogs.com/cheng-cheng/p/9981723.html