javascript - console.log 是原子的吗?

标签 javascript node.js multithreading parallel-processing

Python 中的print 语句不是线程安全的。在 Node.js 中同时使用 console.log 是否安全?

如果是这样,那么它也是交错安全的吗?也就是说,如果多个(甚至数百个)回调写入控制台,我能确定输出不会被破坏或交错吗?

查看源代码,似乎 Node.js 将并发写入流的尝试排队(here)。另一方面,console.logsubstitution flags come from printf(3) .如果 console.log 环绕 printf,那么它可以在 POSIX 机器上交错输出 (as shown here)。

请告诉我 async ._write(chunk, encoding, cb) is implemented 在哪里在您对这个问题的回答中的 Node.js 内部。

编辑:如果可以同时写入一个流,那么为什么 this npm package存在吗?

最佳答案

node.js 中的一切基本上都是“原子的”。那是因为 node.js 是单线程的——任何代码都不会被中断。

关于javascript - console.log 是原子的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38863627/

相关文章:

javascript - Monaco Editor 可动态调整大小

java - Java 是否提供一个 ExecutorService 允许一个 worker 在同一个线程上执行?

multithreading - 线程化时文本框未更新

javascript - 自动完成成功显示错误数据

javascript - 使用 Node.js 读取和写入多个 ip

javascript - 路径未显示在 d3.js topoJson 图中

javascript - 具有响应和 http 方法的 Node JS 变量范围

multithreading - B/W TCB(线程控制 block )和PCB(工艺)有什么区别

JavaScript/jQuery AJAX - 将异步数据返回到我的同步程序中

javascript - Node Js - mssql 的 TransactionError (ENOTBEGUN)