2017-05-29 4 views
1

私はオンラインコースでJavascriptを学んでいます。彼らは、Javascriptの実行が「シングルスレッド同期実行」であると言います。 これは、一度に1つのコマンドとして1つのスレッドを定義し、一度に1つのコマンドとして同期します。
これらの用語の違いはありますか?
一般的にJavascriptは同期言語ですが、シングルスレッド言語?シングルスレッドと同期の違いはありますか?

+0

はい、違いはありますか?JSは同期langではありません。 、Ajaxなど – Rajesh

+0

@Rajesh間違っていますか?回答 –

+0

@SurajJain説明できますか? – Rajesh

答えて

1

シングルスレッドとは、一度に1つしか起こらないことを意味します。

同期は、何かを待つ必要がある場合、待機が終了するまですべてが停止することを意味します。

JavaScriptの同期と非同期の最も一般的な例は、HTTP要求を出すことです。

同期要求を行うと、ネットワーク経由でHTTP要求が送信され、すべてが停止します。マウスのクリックは無視されます。投入時にゼロに達するタイマー。レスポンスが返るまでは何も起こりません。

非同期リクエストが必要な場合、JSエンジンは他の作業を続けます。リクエストが戻ってきて、JSエンジンがビジーでないときは、それが取り出され、処理されます。

1

私はこれを発見し、それは本当に私が理解するのに役立った:

「最後のスレッドでは、我々は同時に、コンピュータのマイクロプロセッサ上で実行するどのように多くのブロックコードの(すなわちスレッド)についてですあなたは、複数の 『コア』を持っている場合。 (最近のIntelプロセッサのように)複数のスレッドを同時に実行することができます(つまり、各プロセッサコアは同時に命令を処理します)。

Javascriptエンジンはこれを実行しません。プロセッサコア。

一方、同期/非同期は、単一スレッドの処理方法と関係があります。 ns '他の何かをする前に私が終了するのを待つ。非同期とは、「それは大丈夫です、終わりに行く」という意味です。 Javascriptは同期スレッドで、シングルスレッドです。エンジン内で一度に起こっていることは1つだけで、コンピュータのマイクロプロセッサに送信される指示は1セットだけです」

関連する問題