-5

マルチスレッドについて非常に基本的な質問があります。一度に 10 個のスレッドを実行すると、単一のインスタンスで 1 つのスレッドのみがアクティブになり、スレッド間の切り替えが行われますか、または複数のスレッドが単一のインスタンスで実行できますか?

4

4 に答える 4

0

ハードウェアに依存します。現在の多くのプロセッサ チップには複数の CPU が組み込まれており、CPU 自体がいくつかのスレッドをインターリーブできる場合があります。大規模なサーバーには、数十個のプロセッサ チップが搭載されている場合があります。このようなシステムでは、10 個のスレッドすべてが完全に同時に実行される可能性があります。

于 2013-09-01T14:39:31.163 に答える
0

一度に実行されるスレッドは 1 つだけです。プロセッサはスレッドをすばやく切り替えます。たとえば、スペル チェックを備えたテキスト エディタを考えてみましょう。

u type-これは 1 つのスレッドであり、prog chks fr エラーです-それは別のスレッドです

それらがマルチスレッド化されている場合、プロセス全体がメモリ内にスペースを取得し、異なるスレッドが同時に実行されます

于 2013-09-01T14:55:44.110 に答える
0

それは本当にあなたのCPUとプログラムの設計に依存します. クアッド コア PC を使用している場合は、8 つのスレッドを同時に実行できます。

于 2013-09-01T14:38:28.700 に答える
0

これは、ハードウェアと OS の両方に依存します。スレッドよりもコア数が少ない場合、OS はそれらのスレッドをインターリーブする可能性があります。つまり、そのうちの 1 つが IO 操作などを実行するたびに、またはタイム スライスが終了するたびに別のスレッドに切り替えられます。

また、すべてのコアが 1 つの実行スレッドを実行します。それがマルチコアの目的です。これは通常、タイム スライス動作と混合されます。

于 2013-09-01T14:42:37.660 に答える