【转】人云思云 2015年08月07日发布 【转】人云思云 2015年08月07日发布 【转】人云思云 2015年08月07日发布 【转】人云思云 2015年08月07日发布 【转】人云思云 2015年08月07日发布 【转】人云思云 2015年08月07日发布 【转】人云思云 2015年08月07 ...
分类:
系统相关 时间:
2017-10-20 18:30:43
阅读次数:
274
转自:http://www.cnblogs.com/yuuyuu/p/5103744.html 一.基本概念 我们通俗一点讲: Level_triggered(水平触发):当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知处理程序去读写。如果这次没有把数据一次性全部读写完(如读 ...
分类:
其他好文 时间:
2017-10-18 21:44:14
阅读次数:
275
libevent能够处理三种事件: I/O、定时器、信号。 event_base统一管理所有事件。 eventop 用于描述event_base的底层实现机制 libevent支持多种平台,因此定义了一个全局数组来存放多个eventop。 Linux平台的I/O多路复用机制是epoll,对应epol ...
分类:
其他好文 时间:
2017-10-17 12:18:42
阅读次数:
251
(1)select,poll实现需要自己不断轮询所有fd集合,直到设备就绪,期间可能要睡眠和唤醒多次交替。而epoll其实也需要调用epoll_wait不断轮询就绪链表,期间也可能多次睡眠和唤醒交替,但是它是设备就绪时,调用回调函数,把就绪fd放入就绪链表中,并唤醒在epoll_wait中进入睡眠的 ...
分类:
其他好文 时间:
2017-10-12 13:05:01
阅读次数:
153
上来是个小姐姐,有点懵。。 1. 介绍 2. 项目 3. 实习 4. 用的协议 tcp和udp的协议 5. select 和epoll(忘了) 6. 数据库的隔离级别, 死锁, 怎么避免死锁 7. 宏定义和const 8. 哪些函数不能做虚函数? 9. STL有哪些容器 10. 多线程通信的方式 1 ...
分类:
编程语言 时间:
2017-10-10 13:05:44
阅读次数:
141
最近学习完网络编程,决定写一个简单的聊天服务器。主要用到的技术是socket,I/O复用(epoll),非阻塞IO,进程等知识。下面主要叙述其中的关键技术点以及编写过程中遇到的问题。 0、该程序实现的基本功能 编写了一个简单的聊天室程序,该聊天室程序能够让所有的用户同时在线群聊,它分为服务器和客户端 ...
分类:
其他好文 时间:
2017-10-05 17:19:28
阅读次数:
258
本文目录:1. 基础2. I/O模型2.1 Blocking I/O模型2.2 Non-Blocking I/O模型2.3 I/O Multiplexing模型2.4 Signal-driven I/O模型2.5 Asynchronous I/O模型2.6 同步IO和异步IO、阻塞和非阻塞的区分3. ...
分类:
其他好文 时间:
2017-10-04 00:24:29
阅读次数:
262
I/O多路复用:关于I/O多路复用(又被称为“事件驱动”),首先要理解的是,操作系统为你提供了一个功能,当你的某个socket可读或者可写的时候,它可以给你一个通知。这样当配合非阻塞的socket使用时,只有当系统通知我哪个描述符可读了,我才去执行read操作,可以保证每次read都能读到有效数据而 ...
分类:
其他好文 时间:
2017-10-02 15:48:40
阅读次数:
149
它的基本原理就是select/epoll这个function会不断的轮询所负责的所有socket,当某个socket有数据到达了,就通知用户进程。它的流程如图: 当用户进程调用了select,那么整个进程会被block,而同时,kernel会“监视”所有select负责的socket,当任何一个so ...
分类:
编程语言 时间:
2017-10-01 13:39:58
阅读次数:
240
1.AF_UNIX & SOCK_STREAM 1.1 accept_socket BLOCK EPOLLIN|EPOLLET 1.2 accept_socket NON-BLOCK EPOLLIN|EPOLLET 1.3 accept_socket BLOCK EPOLLIN 1.4 accept ...
分类:
Web程序 时间:
2017-09-30 10:04:13
阅读次数:
263