1. 阻塞和非阻塞有什么区别答案:阻塞和非阻塞说的是一个调用在资源暂时不可用时,当前线程会不会被挂起等待。阻塞调用在条件不满足时会让线程睡眠,直到数据就绪、锁可用或者事件发生后再返回。非阻塞调用在条件不满足时会立刻返回,不会把线程卡住,调用方需要自己决定是重试、轮询还是交给事件驱动框架处理。比如 socket 读操作,如果是阻塞模式,没有数据时线程会一直等;如果是非阻塞模式,没有数据时通常返回 EAGAIN 或 EWOULDBLOCK。这里要注意,非阻塞不等于异步,异步强调的是结果不是在当前调用栈里直接拿到,而是后面以通知、回调或 future 的形式回来。代码: #include <f...