IO模型

[TOC]

相关概念

同步

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

异步

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

阻塞

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

非阻塞

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

多路复用

TODO:go相关实现源码,src/runtime/netpoll_xxx.go

select

epoll

最后更新于

这有帮助吗?