是异步的,这种异步是Go语言本身提供的抽象,因此实际代码实现非常简单。

当你发起一个异步操作,比如发一个网络请求,go的runtime会把你当前的goroutine挂起,让当前线程去执行别的goroutine。等异步信号到达(收到返回)时,再把之前那个goroutine唤醒。这样你就可以用同步的代码书写异步的逻辑了。

go的runtime利用epoll,把所有网络请求都封装成一个Netpoller对象,用来注册和监听事件。总之,你不太用管性能问题,杠杠滴