同步 异步 阻塞 非阻塞 区别

网络IO本质:
任何IO事件处理可以分为两个过程:
等待数据数据拷贝 (内核空间—>用户空间)

从进程级来看,同步与阻塞、异步和非阻塞是同义词,从计算机系统层面则有以下差别:

阻塞非阻塞 同步异步
等待数据是否会阻塞进程 数据拷贝时是否会阻塞进程
阻塞IO 非阻塞IO
用户进程进入 waiting 状态,直到数据被拷贝到进程空间中,CPU 才唤醒线程。 CPU 并不将当前进程设置为 waiting 状态,而是check: 1)在没有准备好数据时,返回一个 EWOULDBLOCK 的错误给线程。2)在数据准备好时,将数据从内核空间复制到进程空间,然后返回 OK 给进程

同步 异步 阻塞 非阻塞 区别

同步 异步 阻塞 非阻塞 区别