Python高级编程day11.协程

本文讨论了Python中多任务控制的join()方法、进程和线程标识,以及如何解决线程资源抢占问题。重点介绍了通信隔离的概念,通过队列实现先进先出的同步机制,并探讨了生产者消费者模型在处理队列满/空状态的应用。

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

复习:

多任务控制:1.join( )主进程等待子任务结束

                         join放在字符串当中:拼接。

                         terminate:强制终止子任务。

多任务标识:pid获取进程编号:getpid

                      ident:获取线程编号。

                      daemon:守护模式。

                      is_alive( ):判断进程是否开启。

解决线程资源抢占:互斥锁、join( )——>多任务变成单任务。

———————————————————————————————————————————

通信隔离:

示例代码:

运行代码:发现,在函数内部已经自增为19了,但是主进程并没有正常输出结果。

这个就是通信隔离:

解决办法:Manager( )

输出结果:

线程相互通信:线程没有通信隔离,但会有资源抢占。(解决方式:互斥锁、join( )

队列:先进先出

运行结果:

但是如果入队的数据量超过规定值,就会发生阻塞。

运行结果:

反之,入队的数据量不足。入队数据量小于出队量:

运行结果:

输出入队的所有数据,并且等待新的数据入队将其出队(输出)

测试空:empty( )

运行结果:

反之:入队一条数据:"ZmySir"

输出False

测试满:full( )   未满则输出False

入队的数据是满的话:输出True

队列长度:qsize( )

生产者与消费者:

运行结果:

进程的消费者与生产者模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中国第一深情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值