Die print
-Anweisung in Python ist nicht Thread-sicher. Ist es sicher, console.log
in Node.js gleichzeitig zu verwenden?Ist console.log atomar?
Wenn ja, ist es auch Interleave-sicher? Das heißt, wenn mehrere (sogar Hunderte) Callbacks auf die Konsole schreiben, kann ich sicher sein, dass die Ausgabe nicht verfälscht oder verschachtelt wird?
Mit Blick auf den Quellcode scheint Node.js gleichzeitige Versuche in einen Stream zu schreiben (here). Auf der anderen Seite console.log
substitution flags come from printf(3)
. Wenn console.log
um printf
wraps, dann kann dies die Ausgabe auf POSIX-Maschinen verschachteln (as shown here).
Bitte zeigen Sie mir, wo die async ._write(chunk, encoding, cb)
is implemented innerhalb Node.js in Ihrer Antwort auf diese Frage.
EDIT: Wenn es in Ordnung ist, gleichzeitig in einen Stream zu schreiben, warum gibt es dann this npm package?
Node.js ist single threaded. Callbacks können aus verschiedenen Threads stammen, aber sobald sie in den Hauptthread eintreten, ist nichts gleichzeitig. – 4castle