huiselele 发表于 2017-4-30 12:26:50

Python的线程相关概念

  Lock, 普通锁,调用acquired, 取得锁。任何线程可以调用release释放锁。 在锁未释放前调用acquired操作被block
  RLock, 区别于Lock是, 如果重复调用acquired方法是同一个线程不发生block.
  Semaphore, 信号量
  BoundedSemaphore,和信号量的区别是, 如果释放后信号量,大于初始值抛出异常ValueError
  Condition, 需要和Lock结合使用, 支持wait和notify 操作.
BlockReleasethreading.Lock创建普通锁Yany threadthreading.RLock重入锁lock线程可以重入 lock threadSemaphore信号量<=0 blockBoundedSemaphore信号量信号量大于初始值时RaiseValueErrorCondition条件变量支持:wait,notify, acquire, release
0. Condition总是和Lock结合使用
1. wait前需要先调用acquire, wait成功自动释放锁
2. notify 本身不会释放锁,需要程序调用release
页: [1]
查看完整版本: Python的线程相关概念