1. 阻塞和非阻塞有什么区别答案:阻塞和非阻塞描述的是一个系统调用在资源暂时不可用时,调用线程会不会立刻被挂起。阻塞 IO 下,如果数据没准备好,线程会睡眠等待,直到条件满足再返回。非阻塞 IO 下,如果数据没准备好,系统调用会立刻返回错误码,比如 EAGAIN 或 EWOULDBLOCK,由调用方决定后续是重试、注册事件,还是先处理别的任务。很多人容易把阻塞/非阻塞和同步/异步混在一起说,但它们不是一回事。阻塞/非阻塞更偏调用方发起操作时的状态表现,而同步/异步更偏结果通知方式。代码: #include <fcntl.h> #include <unistd.h> #i...