来自 node .从js的Angular 来看,所有代码都是非阻塞的.
在Go中,使用通道很容易实现非阻塞.
如果一个人正在写一个 node .go中的js类型服务器,使其无阻塞有意义吗?例如,让database connect()函数返回一个通道,而不是在等待连接发生时阻塞.
在我看来,这似乎是正确的方法
但是
来自 node .从js的Angular 来看,所有代码都是非阻塞的.
在Go中,使用通道很容易实现非阻塞.
如果一个人正在写一个 node .go中的js类型服务器,使其无阻塞有意义吗?例如,让database connect()函数返回一个通道,而不是在等待连接发生时阻塞.
在我看来,这似乎是正确的方法
但是
阻塞和非阻塞实际上与性能无关,它们与接口有关.
在Go中,当一个goroutine阻塞I/O时,它会被换成另一个goroutine.Go运行时使用非阻塞I/O系统调用,以避免操作系统阻塞线程,从而在第一个goroutine等待其I/O时,可以在其上运行另一个goroutine.
Goroutine非常便宜,因此不需要编写非阻塞式代码.