2

ハイパースレッディングはどの言語で実装できますか?それはオブジェクト指向システムの一部にすぎませんか、それともCで実装できますか?

ありがとう。

4

2 に答える 2

7

スレッドをサポートするすべての言語とランタイムは、ハイパースレッディングをサポートします。

ハイパースレッディングは、複数のスレッド間でCPUを多重化する方法です。実際のCPUは1つだけですが、オペレーティングシステムには2つのCPUとして表示されるため、2つのスレッドをスケジュールできます。一方のスレッドでCPUが停止すると(メモリの待機、長いFPU操作など)、CPUがもう一方のスレッドからコードを実行できるようになります。

ウィキペディアでのハイパースレッディングの詳細。

于 2009-05-08T23:30:18.953 に答える
0

ハイパースレッディングは、ほとんどの場合、システムにプロセッサを追加することと同じです。言語がスレッドをサポートしていない場合でも、プログラム自体の別のコピーを生成したり、(オペレーティング システムがサポートしている場合) 使用可能なプロセッサ間でバランスを取るワーカー プロセスを生成したりすることができます。

お使いの言語のスレッド サポートを調べる必要がありますが、コードが非同期で実行される可能性があるため、スレッドによってプログラムが簡単に複雑になり、バグを見つけにくくなる可能性があることに注意してください。

したがって、あなたの質問に対する答えは「おそらく、しかし場合による」です。

他の質問については、ランタイムとコンパイラのサポートに応じて、C で複数のスレッドを簡単に実装できます。たとえば、OpenMP 拡張機能http://en.wikipedia.org/wiki/OpenMPが役立つ場合があります。

于 2011-12-05T23:32:07.480 に答える