python3 的queue 的参数,block、timeout

queue队列默认block=True;
这会使得,在进行队列操作时,出现队列为空,或满了,程序会进入阻塞状态,等待超时。

import queue
from time import sleep

q = queue.Queue(10)

for i in range(20):
    print(i)
    q.put(i, timeout=5)  # 在队列塞满了以后,在阻塞了timeout时间后raise一个queue.full的异常
    sleep(0.2)

while q.get():
    print(q.get())

程序结果为:

Traceback (most recent call last):
  File "D:/Python/new/queue_test.py", line 8, in <module>
    q.put(i, timeout=5)  # 在队列塞满了以后,在阻塞了timeout时间后raise一个queue.full的异常
  File "C:\Program Files\Python35\lib\queue.py", line 141, in put
    raise Full
queue.Full

如果没有block 或 timeout 的定义,那么会一直在阻塞状态,不会抛出异常或者进行其他的下一步。一直在阻塞状态。
python3 queue的一些参数的尝试

以上。

相关文章:

  • 2022-12-23
  • 2021-10-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-28
猜你喜欢
  • 2022-12-23
  • 2021-09-10
  • 2021-12-25
  • 2021-10-24
  • 2021-09-09
  • 2021-06-02
相关资源
相似解决方案