# IO模型

\[TOC]

## 相关概念

### 同步

调用端会一直等待被调用端响应，直到返回结果

### 异步

调用端发起调用后，不会等待被调用方响应

### 阻塞

被调用方返回结果之前，调用方会挂起。在go中发生阻塞会使得goroutine主动释放CPU分片，等待下次runtime调度获得CPU分片资源，然后通过检查调用状态来判断是继续阻塞还是往下执行。

### 非阻塞

在被调用方返回结果前，函数不会阻塞调用方线程。在go中代码逻辑将继续往下执行。

## 多路复用

TODO：go相关实现源码，src/runtime/netpoll\_xxx.go

### select

### epoll
