信号量(Semaphore)
之前讲的线程锁(互斥锁)同时只允许一个线程更改数据,而Semaphore是同时允许一定数量的线程更改数据 ,比如厕所有4个坑,那最多只允许4个人上厕所,后面的人只能等里面有人出来了才能再进去。 说白了就是在同一时间,可以只允许设定的数量的线程去执行 。
1 | import time |
队列(Queue)
queue队列 :使用import queue,用法与进程Queue一样
####class queue.Queue(maxsize=0) 先进先出
1 | import queue |
class queue.LifoQueue(maxsize=0) 后进先出
1 | import queue |
class queue.PriorityQueue(maxsize=0)
根据优先级来取数据。存放数据的格式 : Queue.put((priority_number,data)),priority_number越小,优先级越高,data代表存入的值
1 | import queue |
注意:maxsize代表这个队列最大能够put的长度