python中队列简单使用

使用队列共享资源

队列: 先进先出.
queue被做为公共资源(多进程, 多线程.), 这种时候py自动帮我们加了锁(不管锁的问题).

"""
    线程的队列.
    q = queue.Queue() 创建对象. args: Queue(2)表示给参数可以指定队列长度,
    q.put('str') 添加对象. args: ('str',timeout=2)表示当队列慢了阻塞到达2s就报queue.Full错,
    q.get() 获取对象. args: timeout=2(表示阻塞2s后就报queue.Empty错),
    q.task_done() 结束任务, 加在get后面.
    q.join()    确保任务结束, 每当put一次内部就会计数一次, 所以没get完就阻塞.
    q.qsize()   查看队列长度.
    q.empty()   check the queue if is_empty, yes: True, no: False.
    q.ful()     check the queue if is_full, yes:True, no: False.


    put几个就得get几个, 不然就会进入阻塞.
    put多于队列长度也会阻塞.

"""
import queue


q = queue.Queue()   # create Queue obj.
print(q.qsize())    # show the queue length.
q.put('lls')    # input arg.
q.get()
q.task_done()   # Be in after get().
print(q.qsize())
q.join()

多进程使用队列共享资源

"""
进程队列.
使用Manager.Queue() 创建queue对象.
"""

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值