zoukankan      html  css  js  c++  java
  • Queue线程安全队列

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

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

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

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

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

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

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

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

    示例如下:

    #encoding: utf-8
    from queue import Queue
    import time
    import threading

    def 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()
  • 相关阅读:
    非常精辟的几句话
    关于免杀的实践
    分析PE
    分析 Nanocore
    CTO的窘境
    企业级容器云平台
    POJ 2274
    POJ 1703
    POJ 1182
    DNS协议以及报文格式总结
  • 原文地址:https://www.cnblogs.com/cyz123/p/Queue.html
Copyright © 2011-2022 走看看