select 1.select能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯改变进程打开的文件描述符个数并不能改变select监听文件个数 2.解决1024以下客户端时使用select是很合适的,但如果链接客户端过多,select采用的是轮询模型,会大大降低服务器响应效率,不 ...
分类:
其他好文 时间:
2019-05-25 00:05:51
阅读次数:
158
理论方法 基于IO多路复用,windows中使用select实现,linux中使用select,pool,epoll实现。 windows中使用select,最多能监听1024个文件句柄,使用轮询检测; Linux中使用select最多能监听1024个文件句柄,使用轮询检测;pool,监听个数不限制 ...
分类:
编程语言 时间:
2019-05-23 00:57:29
阅读次数:
187
1. Nginx 进程模型简介 多进程+多路复用 master 进程 、 worker 进程 启动nginx,查看nginx的线程,可以发现: worker_processes 1 cpu 总核心数 epoll . select .... #user nobody; 用户 worker_proces ...
分类:
其他好文 时间:
2019-05-23 00:14:57
阅读次数:
122
read或write都是属于IO操作 比如socket的发送和接收就是IO操作 # 同步 提交一个任务之后要等待这个任务执行完毕# 异步 只管提交任务,不等待这个任务执行完毕就可以做其他事情# 阻塞 recv recvfrom accept# 非阻塞 # 阻塞 线程 运行状态 --> 阻塞状态 -- ...
分类:
其他好文 时间:
2019-05-21 22:50:52
阅读次数:
258
ET模式下每次write或read需要循环write或read直到返回EAGAIN错误。以读操作为例,这是因为ET模式只在socket描述符状态发生变化时才触发事件,如果不一次把socket内核缓冲区的数据读完,会导致socket内核缓冲区中即使还有一部分数据,该socket的可读事件也不会被触发根 ...
分类:
其他好文 时间:
2019-05-19 12:28:08
阅读次数:
369
1、创建udp的socket句柄 2、发送udp数据包 3、发送udp广播包 4、接收udp的数据包利用poll或epoll模型,当某个socket_fd有数据可读时,即可返回进行相应的处理 5、poll模型的构建,同时监控多个fd ...
分类:
其他好文 时间:
2019-05-18 20:34:00
阅读次数:
123
selectors 模块 它的功能与linux的epoll,还是select模块,poll等类似; 实现高效的I/O multiplexing, 常用于非阻塞的socket的编程中 官方文档 这里 内部类 ? BaseSelector ? SelectSelector ? PollSelector ...
分类:
编程语言 时间:
2019-05-16 15:12:07
阅读次数:
190
进程池 [TOC] 父进程的实现流程 1、定义数据结构pChild,申请子进程数目的结构体空间 2、通过循环,socketpair创建全双工管道,创建子进程,将子进程pid,管道对端,是否忙碌等信息存储 3、socket,bind,listen,对应的端口处于监听状态 netstat 4、epoll ...
分类:
系统相关 时间:
2019-05-13 22:56:50
阅读次数:
168
Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快; 2.redis是单线程的,省去了很多上下文切换线程的时间; 3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭 ...
分类:
编程语言 时间:
2019-05-13 12:43:57
阅读次数:
97
转自:http://blog.sina.com.cn/s/blog_9f1496990102vshz.html 原文:http://www.lvtao.net/c/631.html Libevent介绍 libevent是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部 ...
分类:
其他好文 时间:
2019-05-10 13:13:56
阅读次数:
1081