from multiprocessing import Queue ''' q=Queue(num)若括号中没有指定最大可接收的消息数量,或数量为负值,那么就代表可接收的消息数量没有上限(直到内存的尽头)。函数也是队列的初始化。 Queue.qsize() 返回当前队列包含的消息数量。 Queue.empty() 如果队列为空,返回 True,否则返回 False。 Queue.full() 如果队列满了,返回 True,否则返回 False。 Queue.get([block[, timeout]]) 获取队列中的一条消息,然后将其从队列中移除,block 默认值为 True。如果 block 使用默认值,且没有设置 timeout(单位:秒),消息队列为空, 此时程序将被阻塞(停在读取状态),直到从消息队列读到消息为止,如果设置了 timeout,则会等待 timeout 秒,若还没有读取到任何消息,则抛出 Queue.Empty 异常。 Queue.get_nowait() 相当于 Queue.get(False)。 Queue.put(item, [block[, timeout]]) 将 item 消息写入队列,block 默认值为 True。如果 block 使用默认值,且没有设置 timeout(单位:秒), 消息队列如果已经没有空间可写入,此时程序将被阻塞(停在写入状态),直到从消息队列腾出空间为止,如果设置了 timeout,则会等待 timeout 秒,若还没有空间,则抛出 Queue.full 异常。 Queue.put_nowait(item) 相当于 Queue.put(item, False)。 ''' if __name__ == '__main__': # 初始化一个Queue对象,最多可接收3条信息,也就是可以put 3条消息 q = Queue(3) q.put('消息1') q.put('消息2') q.put('消息3') # 已经put满了3条消息,如果还要q.put() 程序将会阻塞等待,消息被拿出。 # 判断消息是否为空,再读取;为空返回True,不为空返回False. if not q.empty(): print('----从消息队列中获取消息--') # qszie()函数获取队列的消息个数 for i in range(q.qsize()): # 按照先进先出的原则读取消息 print(q.get())
标签:队列,Queue,消息,timeout,简单,put,block,21python From: https://www.cnblogs.com/chenzhi2023/p/17726620.html