摘要: 阻塞IO(blocking IO) 在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样: 当用户进程调用了recvfrom这个系统调用,kernel内核就开始了IO的第一个阶段:准备数据。对于network io( 网络io )来说,很多时候数据在一开始 阅读全文
posted @ 2019-07-27 23:55 minger_lcm 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 基于协程池 实现并发的套接字通信 客户端: 服务端: 阅读全文
posted @ 2019-07-27 21:55 minger_lcm 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 之前线程池是通过操作系统切换线程,现在是程序自己控制,比操作系统切换效率要高 服务端 客户端给服务端发送500个并发量,会看到一直不停的收消息 阅读全文
posted @ 2019-07-27 18:10 minger_lcm 阅读(186) 评论(0) 推荐(0) 编辑
摘要: python 并发编程 IO模型介绍 python 并发编程 socket 服务端 客户端 阻塞io行为 python 并发编程 阻塞IO模型 python 并发编程 非阻塞IO模型 python 并发编程 多路复用IO模型 python 并发编程 异步IO模型 阅读全文
posted @ 2019-07-27 15:35 minger_lcm 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 阻塞io行为 server.accept server.recv client.send recv,accept 分为两个阶段 1.wait for data 对方把数据经过网络延迟送到自己的操作系统缓存 2.把数据从操作系统缓存拷贝到应用程序内存 本地拷贝很快的,比等待要快 send只有一个阶段 阅读全文
posted @ 2019-07-27 15:03 minger_lcm 阅读(383) 评论(0) 推荐(0) 编辑
摘要: gevent 底层是怎么实现? io模型4个重要概念: 两类 一类:同步、异步 提交任务的方式 同步: 提交完任务后,在原地等待结果,拿到结果后,才执行下一行代码 异步: 提交完任务就不管了,往下执行 异步通常和回调机制联用,提交完任务,任务运行完后,自动触发,回调函数代码 阻塞:遇到io,阻塞卡主 阅读全文
posted @ 2019-07-27 14:58 minger_lcm 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 协程池 阅读全文
posted @ 2019-07-27 13:46 minger_lcm 阅读(1265) 评论(0) 推荐(0) 编辑