同步模型
1. IO复用
1.1 poll
1.2 select
2. 信号IO
SIGIO
使用SIGIO的时候必须先设置fd的属主,设置了属主之后,当该fd可读或者可写的时候内核就知道要把该信号发送到哪个进程中。进程需要对信号进行捕获,并进行相应的处理。
关于信号排队问题
linux中大部分信号是不排队,这里所说的SIGIO信号也是不排队的。
什么是排队?
当进行信号处理的时候,信号处于阻塞状态,如果此时该信号又来了两次,当信号处理结束时只会再运行一个该信号处理函数。
3. 非阻塞IO
3.1 设置非阻塞
fcntl(fd,F_SETFL,O_NONBLOCK)
ioctl(fd,)
3.2 accept非阻塞情况
3.3 connnect非阻塞情况
异步模型
libevent