摘要: 1. 生产者消费者模型 生产者消费者速度不匹配时,比如生产的快但是消费的慢,就可以给消费者多开几个进程,但是消费者其实是不知道生产者生产了多少数据,什么时候生产结束,消费者这边其实不太好接收,解决办法就是消费者使用while循环接收生产者发来的消息;生产者给消费者发送一个信号,消费者者接受到就立马跳 阅读全文
posted @ 2018-10-12 20:38 写的BUG代码少 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 1. 队列 从multiprocessing模块导入的队列Queue跟其他队列一样也具有put()方法,get()方法,qsize()方法: 创建队列的第一种方式:(无参数 可以往队列中无限制的放值): 运行结果: 创建队列的第二种方式 (有参数,只可以往队列中放入指定长度的元素,超出限制,就会发生 阅读全文
posted @ 2018-10-12 16:23 写的BUG代码少 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 1. Event事件 标志,可以实现异步阻塞 之前input,recv,accpet sleep等都是同步阻塞(写在哪个进程就会阻塞哪个),然后学了Lock锁 和信号量Semophore 都可以实现异步阻塞,同时阻塞多个进程(比如锁 只是同一时间只允许一个进程执行任务,所以比如开10个进程,就会同时 阅读全文
posted @ 2018-10-12 11:30 写的BUG代码少 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 1. 信号量 信号量本质也是锁,只不过一把锁可以有很多钥匙(自己设置),决定同一时间可以有多个进程同时操作,其他进程会一直等待(阻塞)知道拿到钥匙的进程释放钥匙; 运行结果: 当占有钥匙的进程执行完毕之后,其他进程就会有机会拿到释放的钥匙,执行相应的操作: 运行结果: 2. 迷你唱吧 使用multi 阅读全文
posted @ 2018-10-12 10:17 写的BUG代码少 阅读(365) 评论(0) 推荐(0) 编辑