2017年12月4日
摘要: 生产者消费者模型 在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。 为什么要使用生产者和消费者模式 在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费 阅读全文
posted @ 2017-12-04 17:27 Py行僧 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的 创建队列的类(底层就是以管道和锁定的方式实现): 主要方法: 1 q.put方法用以插入数据到队列中,put方法还有两个可选参数:blocked和timeout 阅读全文
posted @ 2017-12-04 17:07 Py行僧 阅读(819) 评论(0) 推荐(0) 编辑
摘要: Semaphore管理一个内置的计数器,每当调用acquire()时内置计数器-1;调用release() 时内置计数器+1;计数器不能小于0;当计数器为0时,acquire()将阻塞线程直到其他线程调用release()。 实例:(同时只有5个线程可以获得semaphore,即可以限制最大连接数为 阅读全文
posted @ 2017-12-04 16:50 Py行僧 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 进程互斥锁 进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的, 竞争带来的结果就是错乱,如何控制,就是加锁处理 part1:多个进程共享同一打印终端 互斥锁和join的区别 #不加锁:并发执行,速度快,数据不安全 from threading impor 阅读全文
posted @ 2017-12-04 16:34 Py行僧 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 守护进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常: AssertionError: daemonic processes are not allowed to have children 注意:进程之间是互相独立的,主进程代码 阅读全文
posted @ 2017-12-04 15:55 Py行僧 阅读(390) 评论(0) 推荐(0) 编辑