很久以前只有单线程后来发展成多线程而现在单线程又开始流行nodejs
1现在的单线程的语言和最早的单线程有什么区别2还有多线程是否依然在流行,会否被单线程取代?
学习是最好的投资!
初期のシングルスレッド コードは同期型であり、プログラムは常に同期結果を待ってブロックされていました。 ただし、now で言及されている単一スレッド (nodejs など) は非同期であり、呼び出し結果を待機せず、代わりに他の処理を実行し、呼び出し後に続行します。 call result を返します。結果を取得した後、プログラムを実行します。
now
nodejs
マルチスレッド プログラムの効率は、同時実行量が多い場合にはシングル スレッドよりもはるかに高くなります。また、タスクが分割されている場合にも利点があります。もちろん、マシンリソースを最大限に活用するために、CPU の複数のコアを使用するシングルスレッドのアイデアも開発されています。 たとえば、nodejs の cluster モジュールです。 ただし、cluster モジュールは複数のコアを使用してコアの数に応じてプロセスの数を増やしますが、各プロセスは互いに独立しており、ポートを共有します。ただし、Java などのマルチプロセス プログラムの場合、プロセスは共有リソースを持っているため、メモリの占有量は少なくなります。
cluster
それぞれに独自の利点があり、それを補って前進するだけです。それに代わる新しいモデルが登場するかもしれません!個人的な意見。 これがお役に立てば幸いです! !
添付は cluster の例です。
const クラスター = require('cluster'); const http = require('http'); const numCPUs = require('os').cpus().length; if (cluster.isMaster) { // フォークワーカー。 for (var i = 0; i
このプログラムは、CPU コアの数に対応するノード プロセスを開始し、ポート 8000 でリッスンします。
初期のシングルスレッド コードは同期型であり、プログラムは常に同期結果を待ってブロックされていました。 ただし、
now
で言及されている単一スレッド (nodejs
など) は非同期であり、呼び出し結果を待機せず、代わりに他の処理を実行し、呼び出し後に続行します。 call result を返します。結果を取得した後、プログラムを実行します。マルチスレッド プログラムの効率は、同時実行量が多い場合にはシングル スレッドよりもはるかに高くなります。また、タスクが分割されている場合にも利点があります。もちろん、マシンリソースを最大限に活用するために、CPU の複数のコアを使用するシングルスレッドのアイデアも開発されています。 たとえば、
nodejs
のcluster
モジュールです。 ただし、cluster
モジュールは複数のコアを使用してコアの数に応じてプロセスの数を増やしますが、各プロセスは互いに独立しており、ポートを共有します。ただし、Java などのマルチプロセス プログラムの場合、プロセスは共有リソースを持っているため、メモリの占有量は少なくなります。それぞれに独自の利点があり、それを補って前進するだけです。それに代わる新しいモデルが登場するかもしれません!個人的な意見。 これがお役に立てば幸いです! !
添付は
cluster
の例です。このプログラムは、CPU コアの数に対応するノード プロセスを開始し、ポート 8000 でリッスンします。