考考大家,看看你们能不能查出为啥不可以打印出‘nice to meet you’!?

本文展示了一个使用Python的multiprocessing模块中进程池和队列功能的小程序实例。该程序包含两个子进程:一个用于向队列写入数据,另一个用于从队列读取并打印数据。挑战读者找出隐藏于代码中的逻辑bug。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

'''以下为一个小练习,简单的一个进程池用队列的小程序!'''

#work1里面有一个字符串‘’nice to meet you‘’,其中有一个小bugger,你们能不能找出来!看谁眼尖!

#程序可以执行,语法没有错误!

from multiprocessing import Manager,Queue,Pool

import time , os , random


def work2(q):
    print('主进程%s,子进程2 %s' % (os.getppid(), os.getpid()))
    for i in range(q.size()):
        print('获得消息是 %s' % q.get(True), i )




def work1(q):
    print('子进程1', os.getpid())
    for i in 'nice to meet you!':
        q.put(i)


if __name__ == '__main__':
    print('主进程', os.getpid())
    p= Pool(3)
    q = Manager().Queue()


    p.apply_async(work1, (q,))


    time.sleep(1)


    p.apply_async(work2, (q,))


    p.close()
    p.join()
    print('任务完毕'os.getpid)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值