【发布时间】:2022-07-01 20:28:31
【问题描述】:
我来自 Node 背景,并试图通过查看代码示例进入 Go。
我确实觉得代码大部分是同步的很奇怪——甚至像连接和与数据库通信这样的事情,例如
func main() {
// Create a new client and connect to the server
client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri))
if err != nil {
panic(err)
}
}
在 DB 发回响应之前,这不会阻塞线程吗?如果不是,那怎么可能?
【问题讨论】:
-
Doesn't this block the thread until DB sends back a response?是的。I do find it weird that code is mostly synchronous不同语言的工作方式不同。 -
为什么不同步?如果你想同时做一些事情,你必须相应地编写代码。使用具有并发或线程支持的语言不会神奇地编译成高度并发的二进制文件
标签: go