node.js - 理论讨论:nodejs的单线程问题
PHPz
PHPz 2017-04-17 14:51:33
0
1
698

很久以前只有单线程
后来发展成多线程
而现在单线程又开始流行nodejs

1现在的单线程的语言和最早的单线程有什么区别
2还有多线程是否依然在流行,会否被单线程取代?

PHPz
PHPz

学习是最好的投资!

全員に返信(1)
黄舟
  • 初期のシングルスレッド コードは同期型であり、プログラムは常に同期結果を待ってブロックされていました。 ただし、now で言及されている単一スレッド (nodejs など) は非同期であり、呼び出し結果を待機せず、代わりに他の処理を実行し、呼び出し後に続行します。 call result を返します。結果を取得した後、プログラムを実行します。

  • マルチスレッド プログラムの効率は、同時実行量が多い場合にはシングル スレッドよりもはるかに高くなります。また、タスクが分割されている場合にも利点があります。もちろん、マシンリソースを最大限に活用するために、CPU の複数のコアを使用するシングルスレッドのアイデアも開発されています。 たとえば、nodejscluster モジュールです。 ただし、cluster モジュールは複数のコアを使用してコアの数に応じてプロセスの数を増やしますが、各プロセスは互いに独立しており、ポートを共有します。ただし、Java などのマルチプロセス プログラムの場合、プロセスは共有リソースを持っているため、メモリの占有量は少なくなります。

  • それぞれに独自の利点があり、それを補って前進するだけです。それに代わる新しいモデルが登場するかもしれません!個人的な意見。 これがお役に立てば幸いです! !

    • 添付は cluster の例です。

    const クラスター = require('cluster');
    const http = require('http');
    const numCPUs = require('os').cpus().length;
    
    if (cluster.isMaster) {
      // フォークワーカー。
      for (var i = 0; i 

    このプログラムは、CPU コアの数に対応するノード プロセスを開始し、ポート 8000 でリッスンします。

    いいねを押す +0
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート