复习:
多任务控制:1.join( )主进程等待子任务结束
join放在字符串当中:拼接。
terminate:强制终止子任务。
多任务标识:pid获取进程编号:getpid
ident:获取线程编号。
daemon:守护模式。
is_alive( ):判断进程是否开启。
解决线程资源抢占:互斥锁、join( )——>多任务变成单任务。
———————————————————————————————————————————
通信隔离:
示例代码:
运行代码:发现,在函数内部已经自增为19了,但是主进程并没有正常输出结果。
这个就是通信隔离:
解决办法:Manager( )
输出结果:
线程相互通信:线程没有通信隔离,但会有资源抢占。(解决方式:互斥锁、join( ))
队列:先进先出
运行结果:
但是如果入队的数据量超过规定值,就会发生阻塞。
运行结果:
反之,入队的数据量不足。入队数据量小于出队量:
运行结果:
输出入队的所有数据,并且等待新的数据入队并将其出队(输出)
测试空:empty( )
运行结果:
反之:入队一条数据:"ZmySir"
输出False
测试满:full( ) 未满则输出False
入队的数据是满的话:输出True
队列长度:qsize( )
生产者与消费者:
运行结果:
进程的消费者与生产者模型