Python3之队列Queue、Process补充

队列Queue

代码演示

from multiprocessing import Queue
#Queue带参数代表队列中元素个数,不加参数代表队列元素个数无限制
q = Queue(3)
q.put(123)
q.put([1, 2, 3])
q.put({'a': 1, 'b': 2, 'c': 3})
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#队列中可以加入任何元素,没有数据类型限制,队列先进先出

print(q.get())
print(q.get())
print(q.get())
#block默认值为True,当取出个数超出队列个数时,程序会挂起,等待元素加入队列,#如果超出元素个数设置block=False,则程序报错。
print(q.get(block=False))
print(q.get(block=True, timeout=3))

Process补充

from multiprocessing import Process
import os


def work():
    print('%s I am here' % os.getpid())


if __name__ == '__main__':
    p = Process(target=work, )
    p.start()
    p.terminate()
    print(p.name)
    print(p.is_alive())

使用terminate时要特别小心,在调用之前要查看该进程是否产生子进程,如果有子进程,谨慎调用,否则会产生僵尸进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值