Queue线程安全队列

自古美人都是妖i 提交于 2020-02-06 20:22:25

Python中的queue模块中提供了同步的、线程安全的队列类,包括FIFO(先进先出)队列Queue,LIFO(后入先出)队列LifoQueue。这些队列都实现了锁原语(可以理解为;原子操作,即要么不做,要么都做完),能够在多线程中直接使用。

可以使用队列来实现线程中的同步。相关函数如下:

1.初始化Queue(MaxSize):创建一个先进先出的队列;

2.qsize(): 返回队列的大小;

3.empty(): 判断队列是否为空。

4. full(): 判断队列是否满了;

5. get(): 从队列中取最后一个数据;

6.put():j将一个数据放到队列中。

示例如下:

#encoding: utf-8from queue import Queueimport timeimport threadingdef set_value(q):    index = 0    while True:        q.put(index)        index += 1        time.sleep(3)def get_value(q):    while True:        print(q.get())def main():    q = Queue(4)    t1 = threading.Thread(target=set_value,args=[q])    t2 = threading.Thread(target=get_value,args=[q])    t1.start()    t2.start()if __name__ == '__main__':    main()
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!