摘要: 9.11 进程池与线程池 池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 池子内什么时候装进程:并发的任务属于计算密集型 池子内什么时候装线程:并发的任务属于IO密集型 进程池: 线程池: 9.112 基于多线程实现并发的套接字通信(使用线程池) 服务端: f 阅读全文
posted @ 2019-07-25 21:30 small_white- 阅读(3832) 评论(0) 推荐(0) 编辑
摘要: 9.94 守护线程与守护进程的区别 9.95 线程互斥锁 9.96 死锁现象与递归锁 mutexA=mutexB=RLock() 一个线程拿到锁,counter加1,该线程内又碰到加锁的情况,则counter继续加1,这期间所有其他线程都只能等待,等待该线程释放所有锁,即counter递减到0为止 阅读全文
posted @ 2019-07-24 21:22 small_white- 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 9.9 线程理论 1、什么是线程 线程指的是一条流水线的工作过程 进程根本就不是一个执行单位,进程其实是一个资源单位,一个进程内自带一个线程,线程才是执行单位 2、进程VS线程 同一进程内的线程们共享该进程内资源,不同进程内的线程资源肯定是隔离的 创建线程的开销比创建进程要小的多 同一进程内的线程们 阅读全文
posted @ 2019-07-23 22:01 small_white- 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 9.8 生产者消费者模型 该模型中包含两类重要的角色: 1、生产者:将负责造数据的任务比喻为生产者 2、消费者:接收生产者造出的数据来做进一步的处理的被比喻成消费者 实现生产者消费者模型三要素:1、生产者 2、消费者 3、队列 什么时候用该模型: 程序中出现明显的两类任何,一类任务是负责生产,另外一 阅读全文
posted @ 2019-07-22 21:17 small_white- 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 9.5 守护进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就立即终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allowed to have children 注意:进程之间是互相独立的, 阅读全文
posted @ 2019-07-19 21:22 small_white- 阅读(584) 评论(0) 推荐(0) 编辑
摘要: 第九章并发编程 同一个程序执行多次是多个进程 9.1 开启子进程的两种方式 服务端目标: 1、不间断地提供服务 2、服务端要支持高并发+高性能 一个进程在运行过程中开启了子进程(如nginx开启多进程,os.fork,subprocess.Popen等) 父进程发起请求,操作系统创建子进程 方式一: 阅读全文
posted @ 2019-07-18 21:36 small_white- 阅读(3264) 评论(0) 推荐(0) 编辑
摘要: 8.5 基于UDP协议的套接字通信 UDP协议:数据报协议 特点:无连接,一发对应一收,先启动哪一端都不会报错 优点:发送效率高,但有效传输的数据量最多为500bytes 缺点:不可靠:发送数据,无需确认,容易丢包 udp服务端 udp客户端 8.6 客户端与服务端操作( 基于UDP ) 服务端: 阅读全文
posted @ 2019-07-17 21:39 small_white- 阅读(567) 评论(0) 推荐(0) 编辑
摘要: 8.4 粘包问题 粘包问题发生的原因: 1.发送端需要等缓冲区满才发送出去,造成粘包(发送数据时间间隔很短,数据了很小,会合到一起,产生粘包),这样接收端,就难于分辨出来了,必须提供科学的拆包机制。 即面向流的通信是无消息保护边界的。 2.接收方不及时接收缓冲区的包,造成多个包接收(客户端发送了一段 阅读全文
posted @ 2019-07-15 22:03 small_white- 阅读(983) 评论(0) 推荐(0) 编辑
摘要: 实现gevent模块 服务端: from socket import * import time s = socket() s.bind(('127.0.0.1',8080)) s.listen(5) s.setblocking(False) r_list=[] w_list=[] while Tr 阅读全文
posted @ 2019-07-14 17:29 small_white- 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 第八章网络编程 8.1 基于TCP协议的套接字通信 服务端套接字函数 客户端套接字函数 公共用途的套接字函数 面向锁的套接字方法 面向文件的套接字的函数 8.2 客户端与服务端操作( 基于TCP ) tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 socket是位于应用层与传输层 阅读全文
posted @ 2019-07-11 22:01 small_white- 阅读(747) 评论(0) 推荐(0) 编辑