线程队列queue

线程queue

线程queue可以保证多线程之间共享数据,并且自动加锁

import queue

# 先进先出:队列
q1 = queue.Queue(3)
q1.put([1, 2, 3])
q1.put('string')
q1.put({'user': 'Linda', 'password': 123456})
# q1.put('ddd')                 # block=True
# q1.put('ddd', block=False)      # raise queue.Full
# q1.put('ddd', block=True, timeout=3)    # # raise queue.Full

print(q1.get())
print(q1.get())
print(q1.get())
# print(q1.get(block=False))      # queue.Empty
# print(q1.get_nowait())          # queue.Empty
# print(q1.get(block=True, timeout=3))    # queue.Empty

# 后进先出:堆栈
q2 = queue.LifoQueue(3)
q2.put([1, 2, 3])
q2.put('string')
q2.put({'user': 'Linda', 'password': 123456})
print(q2.get())
print(q2.get())
print(q2.get())

# 优先级队列:输入元祖,数字越小,优先级越高,越先出
q3 = queue.PriorityQueue()
q3.put((10, 'one'))
q3.put((30, 'two'))
q3.put((20, 'three'))
print(q3.get())
print(q3.get())
print(q3.get())

Last updated