理论方法 基于IO多路复用,windows中使用select实现,linux中使用select,pool,epoll实现。 windows中使用select,最多能监听1024个文件句柄,使用轮询检测; Linux中使用select最多能监听1024个文件句柄,使用轮询检测;pool,监听个数不限制 ...
分类:
编程语言 时间:
2019-05-23 00:57:29
阅读次数:
187
read或write都是属于IO操作 比如socket的发送和接收就是IO操作 # 同步 提交一个任务之后要等待这个任务执行完毕# 异步 只管提交任务,不等待这个任务执行完毕就可以做其他事情# 阻塞 recv recvfrom accept# 非阻塞 # 阻塞 线程 运行状态 --> 阻塞状态 -- ...
分类:
其他好文 时间:
2019-05-21 22:50:52
阅读次数:
258
https://blog.csdn.net/baixiaoshi/article/details/48708347 https://blog.csdn.net/z69183787/article/details/52943917 select,poll,epoll都是IO多路复用的机制。所谓I/O多 ...
分类:
其他好文 时间:
2019-05-07 19:57:44
阅读次数:
180
1、概述 select,poll,epoll都是IO多路复用的机制。I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负 ...
分类:
系统相关 时间:
2019-05-01 14:56:40
阅读次数:
158
网络编程里常听到阻塞IO、非阻塞IO、同步IO、异步IO等概念,总听别人装13不如自己下来钻研一下。不过,搞清楚这些概念之前,还得先回顾一些基础的概念。 1 基础知识回顾 注意:咱们下面说的都是Linux环境下,跟Windows不一样哈~~~ 1.1 用户空间和内核空间 现在操作系统都采用虚拟寻址, ...
分类:
其他好文 时间:
2019-04-19 01:22:46
阅读次数:
136
Linux IO多路复用 poll 之前曾经提到过 select poll 跟select类似,poll改进了select的一个确定,就是poll没有监听上限 不过poll还是需要遍历以及频繁的把数组拷贝到内核空间,在监听较多文件描述符的时候性能会下降 传递的三个参数 fds:结构体数组 nfds: ...
分类:
系统相关 时间:
2019-04-05 12:19:33
阅读次数:
204
这篇博客是本人借鉴一些大神的博客并结合自己的学习过程写下的。 事件驱动模型 事件驱动模型是一种编程范式,这里程序的执行流由外部事件来决定。它的特点是包含一个事件循环,当外部事件发生时,不断从队列里取出事件,根据不同的事件,调用不同的函数,然后通过使用回调机制来触发相应的处理。 IO多路复用 阻塞IO ...
分类:
编程语言 时间:
2019-03-24 17:20:39
阅读次数:
156
'''#提升python 程序的性能问题使用 多进程,充分利用机器的多核性能对与影响较大的部分代码,用c 或者c++ 编写对于 io阻塞造成的性能影响,可以使用io多路复用来解决尽量用python 的内建函数尽量使用局部变量#作用域本地作用域>当前作用域嵌入本地作用域>全局/模块作用域>局部作用域# ...
分类:
其他好文 时间:
2019-03-22 22:48:54
阅读次数:
563
简单的socket项目: client端: server端: 为解决socket的并发问题,使用socketserver: socketserver源码分析: IO多路复用: ...
分类:
编程语言 时间:
2019-03-21 17:21:52
阅读次数:
173