「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Javascriptはシングルスレッドではありません!!

Javascriptはシングルスレッドではありません!!

2024 年 7 月 31 日に公開
ブラウズ:939

いいえ! JavaScript がシングルスレッド言語であるということは間違っていません。これはシングルスレッド言語であり、コードを実行するために単一のメインスレッドにアクセスできます。したがって、同期プログラミングについて話すときは、すべての重労働を行ってコードを実行するこの唯一のスレッドについて話していることになります。
Image description

しかし実際には、V8 エンジンと Node.js は libuv と呼ばれる C ライブラリを使用して、6 つの追加スレッドにアクセスします。これらのうち 2 つはガベージ コレクションの実行に使用され、残りは非同期プログラミングなどのバックグラウンド タスクの実行に使用されます。

はい。コードが非同期またはノンブロッキングであると言うとき、実際に起こっていることは、非同期コードがコールバックを使用してこれらの追加スレッドに渡され、メインスレッドがコードの残りの部分をブロックすることなく作業を続行することです。

Javascript is NOT single threaded!!
非同期コードが終了すると、コールバック関数がエラーまたは必要なデータとともにイベント キューにプッシュされます。次に、イベント ループがそれをコール スタックにプッシュし、結果を取得します。これをコードで理解します。 fs module.
の readfile メソッドを見てみましょう。

fs.readFile("demo.text","utf8",(err,data)=>{
    if(error){       
        return error
    }
    console.log("output",data);
})

上記のコードでは、readfile メソッドがバックグラウンド スレッドに渡されます。読み取りはバックグラウンドで行われ、それが完了すると、コールバックがエラーまたはデータとともにイベント キューにプッシュされます。

Javascript is NOT single threaded!!

コールスタックに入るとコールバックが実行され、エラーかデータが出力として残ります。
読んでいただきありがとうございます。JavaScript のシングル スレッド手段について説明できれば幸いです。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/roshankbadola/javascript-is-not-single-threaded-3b9a?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3