Appearance
阻塞与非阻塞(Blocking & Non-blocking)
阻塞与非阻塞描述的是:当你“等待结果”时,当前线程是否还能继续做别的事。
阻塞(Blocking)
阻塞意味着“停下来等结果”。
比如同步读取文件:
读文件 -> 卡住 -> 文件读完 -> 继续执行非阻塞(Non-blocking)
非阻塞意味着“先发起请求,然后继续做别的事”。
发起读文件 -> 继续执行 -> 文件读完后回调与同步/异步的关系
- 同步/异步:什么时候拿到结果
- 阻塞/非阻塞:等待时能不能干别的事
例如:
- 同步 + 阻塞:最常见的传统模式。
- 异步 + 非阻塞:事件循环常见模式。
进一步阅读
理解阻塞/非阻塞有助于你理解性能与响应性。