阻塞:当我们调用 read、send、write 等等系统调用 API 时,会把内核的缓存区里的数据拷
贝到用户态的缓存区里,如果这个时候内核缓存区里没有数据,则会等待内核把数据准备好,
此时,应用进程处于一种挂起状态。
非阻塞:当我们的应用程序调用 write、send、read(所有的 IO 接口都是的),如果仅仅是
从内核缓存区里把数据 copy 走,或者没有数据 copy,此时也会直接返回,明显我们的用户
进程并没有任何的等待,或者说处于挂起的状态,这种就是非阻塞。
默认创建的 socket 是阻塞的,但是可以调用下面这个函数设置为非阻塞:
评论0