风-fmgao

导航

2018年6月20日

IO模型比较分析

摘要: 异步IO(Asynchronous I/O) Linux下的asynchronous IO其实用得不多,从内核2.6版本才开始引入。先看一下它的流程: 用户进程发起read操作之后,立刻就可以开始去做其它的事。而另一方面,从kernel的角度,当它受到一个asynchronous read之后,首先 阅读全文

posted @ 2018-06-20 16:50 风-fmgao 阅读(188) 评论(0) 推荐(0) 编辑

select,poll,epoll,selectors

摘要: 一 了解select,poll,epoll 二 selectors模块 这三种IO多路复用模型在不同的平台有着不同的支持,而epoll在windows下就不支持,好在我们有selectors模块,帮我们默认选择当前平台下最合适的 基于selectors模块实现并发的FTP 参考:链接: https: 阅读全文

posted @ 2018-06-20 16:48 风-fmgao 阅读(266) 评论(0) 推荐(0) 编辑

多路复用IO

摘要: 多路复用IO(IO multiplexing) IO multiplexing这个词可能有点陌生,但是如果我说select/epoll,大概就都能明白了。有些地方也称这种IO方式为事件驱动IO (event driven IO)。我们都知道,select/epoll的好处就在于单个process就可 阅读全文

posted @ 2018-06-20 16:38 风-fmgao 阅读(135) 评论(0) 推荐(0) 编辑

非阻塞IO

摘要: 非阻塞IO(non-blocking IO) Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blocking socket执行读操作时,流程是这个样子: 从图中可以看出,当用户进程发出read操作时,如果kernel中的数据还没有准备好,那么它并不会bloc 阅读全文

posted @ 2018-06-20 15:57 风-fmgao 阅读(130) 评论(0) 推荐(0) 编辑

yield-from示例

摘要: #!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/6/20 9:13# @File : yield_from11.pyfrom collections import namedtupleResult = namedtuple('Resul 阅读全文

posted @ 2018-06-20 10:32 风-fmgao 阅读(124) 评论(0) 推荐(0) 编辑