2017-09-01 5 views
-2

私はNodejsで動作するMongoDBでデータモデリングを構築中です。 Javascriptでスレッドの実行フローを処理する基本レベルの作業を理解したいと思っています。基本的には、Javascript & Nodejのスレッドの実行の点で違いがあるかどうかを知りたいです。 javascriptはシングルスレッドで、Node8はv8のjavascript上でビルドされてもシングルスレッドです!これら2つの間の実行の点で画期的な違いが何であるか。JavascriptシングルスレッドとNodeJSシングルスレッドの動作がフロー実行の点でどのように異なる

+1

Javascriptは言語です.Nodeはこの言語を実行するエンジンです。 –

+2

@JeremyThilleペダンティックにするノードは環境です、V8はJSエンジンです –

+0

私は物事を簡素化しようとしていました:) –

答えて

1

あなたの質問の用語はちょっと混乱していて、あなたの質問は少し誤っているようです。 "Javascript"とnode.jsを比較しようとするのは実際には意味がありません。 node.jsはJavascriptコードを正常に実行します。あなたは本当に2つを比較しません。あなたが比較しようとしていることは、「ChromeブラウザのJavascript」と「node.jsのJavascript」であると仮定します。

Chrome(または他のブラウザ)とnode.jsのJavascriptのメインスレッドはシングルスレッドです。彼らは同じように振舞います。実際、node.jsとChromeはまったく同じV8 Javascript実行エンジンを使用しています。外部世界または他のネイティブコードとのすべての調整は、イベントキューを介して行われます。

最新のブラウザには、Javascriptの追加スレッドを許可するwebWorkersがありますが、実行可能なもの(たとえば、DOMにアクセスできない)やメインJavascriptスレッドとの通信方法通信はメッセージングを介して行われます。直接関数呼び出しや共有変数は許可されません)。 WebWorkerは、独立したプロセスがnode.jsにあるため、ほとんど分離されています。

Chromeとnode.jsの両方にネイティブスレッドを使用して自分の作業を実装するネイティブコードライブラリがありますが、ユーザーのJavascriptコードとインターフェイスするときには、すべてイベントキューを経由してスレッド1つのJavascriptコード。

関連する問題