1114. Print in Order
按照指定的顺序打印,三个线程的方法。
方法一:Lock 锁对象法。
1 | from threading import Lock |
方法二:信号量。Semaphore
1 | from threading import Semaphore |
方法三:Event事件对象法。原理同上,用wait
方法作为阻塞,用set
来释放线程,默认类赋值就是阻塞的。
1 | import threading |
方法四:Barrier
障碍法。Barrier
初始化的时候定义了parties = 2
个等待线程,调用完了parties
个wait
就会释放线程。
1 | import threading |
方法五:队列法。直接使用多线程专用的阻塞队列,对于队列为空时,get
方法就会自动阻塞,直到put
使之非空才会释放进程。
1 | import queue |
方法六:反过来,对于定容队列来说,如果队列满了,put
方法也是阻塞。
1 | import queue |
方法七:Condition
1 | from threading import Condition |