在Go中,编写非阻塞代码是否有意义?
|
从node.js的角度来看,所有代码都是非阻塞的。
在Go中,使用通道很容易实现无阻塞。
如果要在go中编写一个node.js类型的服务器,使其无阻塞是否有意义?例如,让数据库connect()函数返回一个通道,而不是等待连接发生时阻塞。
对我来说,这似乎是正确的方法
但是...
没有找到相关结果
已邀请:
5 个回复
玩翁文醚碱
肉簧咸缮
辅奈
)。如果在等待调用结果时没有其他代码要运行,则它将阻塞线程(因为没有更好的事情要做),但是如果您有备用goroutines处于活动状态,则它们将改为运行。 回调(就像您以前在js中使用的一样)允许基本相同的底层机制,但是可以说程序员需要更多的心理体操。 在Go中,在函数调用之后立即指定要在函数调用之后运行的代码,而不是将其定义为回调。您希望与执行路径并行运行的代码应包装在goroutine中,并通过通道进行通信。
邪罗逢确胃
俺呵誓放胳