来自 node .从js的Angular 来看,所有代码都是非阻塞的.

在Go中,使用通道很容易实现非阻塞.

如果一个人正在写一个 node .go中的js类型服务器,使其无阻塞有意义吗?例如,让database connect()函数返回一个通道,而不是在等待连接发生时阻塞.

在我看来,这似乎是正确的方法

但是

推荐答案

阻塞和非阻塞实际上与性能无关,它们与接口有关.

在Go中,当一个goroutine阻塞I/O时,它会被换成另一个goroutine.Go运行时使用非阻塞I/O系统调用,以避免操作系统阻塞线程,从而在第一个goroutine等待其I/O时,可以在其上运行另一个goroutine.

Goroutine非常便宜,因此不需要编写非阻塞式代码.

Node.js相关问答推荐

获取驱动器文件夹的直接子文件夹时出现问题

Rest-Api动态图像路径和Express除非

将 null 推入管道后,node.js 可写完成未发出

级联定时器和Jest 的异步功能

为什么我的 npm 脚本中的 glob 不起作用?

如何从名字,中间名,姓氏中获取全名并在结果中搜索匹配?

在新创建的 Angular 工作区上运行 ng lint 时出错

在数组的另一个对象中获取数组的mongoose 对象

在 `DataFrame` 上使用用户定义的可链接函数抽象出 Polars 表达式

如何在拦截器中发送不同的请求?

等到文件上传完成的有效方法(mongoose )

在 Express-js 中使用路由

如何在 NodeJs 中下载和解压缩内存中的 zip 文件?

Node.js `--nolazy` 标志是什么意思?

Selenium WebDriver 等到元素显示

使用 Node.js 和 Express 进行简单的 API 调用

Node.js:如何附加到正在运行的进程并使用控制台调试服务器?

Node.js 连接仅适用于本地主机

将 NodeJS 用于大型项目

如何调试 Gulp 任务?