上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 66 下一页
摘要: 异步IO(Asynchronous I/O) Linux下的asynchronous IO其实用得不多,从内核2.6版本才开始引入。先看一下它的流程: 用户进程发起read操作之后,立刻就可以开始去做其它的事。而另一方面,从kernel的角度,当它受到一个asynchronous read之后,首先 阅读全文
posted @ 2019-08-01 21:36 minger_lcm 阅读(315) 评论(0) 推荐(0)
摘要: 非阻塞IO(non-blocking IO) Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blocking socket执行读操作时,流程是这个样子: 从图中可以看出,当用户进程发出read操作时,如果kernel中的数据还没有准备好,那么它并不会bloc 阅读全文
posted @ 2019-08-01 21:36 minger_lcm 阅读(1245) 评论(0) 推荐(0)
摘要: 多路复用IO(IO multiplexing) 这种IO方式为事件驱动IO(event driven IO)。 我们都知道,select/epoll的好处就在于单个进程process就可以同时处理多个网络连接的IO。它的基本原理就是select/epoll这个function会不断的轮询所负责的所有 阅读全文
posted @ 2019-08-01 21:36 minger_lcm 阅读(211) 评论(0) 推荐(0)
摘要: 阻塞IO(blocking IO) 在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样: 当用户进程调用了recvfrom这个系统调用,kernel内核就开始了IO的第一个阶段:准备数据。对于network io( 网络io )来说,很多时候数据在一开始 阅读全文
posted @ 2019-07-27 23:55 minger_lcm 阅读(350) 评论(0) 推荐(0)
摘要: 基于协程池 实现并发的套接字通信 客户端: 服务端: 阅读全文
posted @ 2019-07-27 21:55 minger_lcm 阅读(405) 评论(0) 推荐(0)
摘要: 之前线程池是通过操作系统切换线程,现在是程序自己控制,比操作系统切换效率要高 服务端 客户端给服务端发送500个并发量,会看到一直不停的收消息 阅读全文
posted @ 2019-07-27 18:10 minger_lcm 阅读(197) 评论(0) 推荐(0)
摘要: python 并发编程 IO模型介绍 python 并发编程 socket 服务端 客户端 阻塞io行为 python 并发编程 阻塞IO模型 python 并发编程 非阻塞IO模型 python 并发编程 多路复用IO模型 python 并发编程 异步IO模型 阅读全文
posted @ 2019-07-27 15:35 minger_lcm 阅读(172) 评论(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 阅读(395) 评论(0) 推荐(0)
摘要: gevent 底层是怎么实现? io模型4个重要概念: 两类 一类:同步、异步 提交任务的方式 同步: 提交完任务后,在原地等待结果,拿到结果后,才执行下一行代码 异步: 提交完任务就不管了,往下执行 异步通常和回调机制联用,提交完任务,任务运行完后,自动触发,回调函数代码 阻塞:遇到io,阻塞卡主 阅读全文
posted @ 2019-07-27 14:58 minger_lcm 阅读(208) 评论(0) 推荐(0)
摘要: 协程池 阅读全文
posted @ 2019-07-27 13:46 minger_lcm 阅读(1270) 评论(0) 推荐(0)
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 66 下一页