非阻塞与同异步,信号驱动IO
进程把一个套接字设置成非阻塞是在通知内核:当所请求的IO操作非得把本进程投入睡眠才能完成时,不要把本进程投入睡眠,而是返回一个错误.
同步IO:导致请求进程阻塞,直到IO操作完成
异步IO:不导致请求进程阻塞.
信号驱动IO:让内核描述符就绪时发送SIGIO信号通知我们.
异步IO通过告知内核启动某个,并让内核在整个操作(包括将数据从内核复制到我们自己的缓冲区)完成后通知我们.这种模型与前一节介绍的信号驱动模型的主要区别在于:信号驱动式IO是由内核通知我们何时可以启动一个IO操作,而异步IO模型是由内核通知我们何时IO操作完成