.Netおよびスレッドでのマルチコアプログラミング。

数日前、スレッドの数が計算の速度にどのように影響するかについての投稿を書きました。 コメントでは、スレッドを使用するときに1つのコア(または1つのプロセッサ)のみを使用していると繰り返し非難されました。ParallelExtensionsは、マルチコアプログラミングの啓発に使用する必要があります。 控えめに言っても、これらの陳述は私を驚かせたので、私はより詳細に問題を整理することにしました。



スレッド

ロシア語版では、 MSDN「ストリーム」であり、混乱を招きます。 したがって、 「スレッド」という用語を使用して、 スレッドを参照しますが、これも多かれ少なかれ確立されています。 繰り返しになりますが、 Lingvoは「4)コンピューター。 スレッド、トレード(マルチタスク環境:この(開始)プロセスのアドレス空間内の別のプロセスによって起動されたサブプロセス)



プロセススレッドの関係。

MSDNに戻り 、スレッドとプロセス間の接続を確立します。

プロセスは、仮想メモリ空​​間、コード、データ、およびシステムリソースの集合です。 スレッドは、プロセス内で順番に実行されるコードです。 プロセッサはプロセスではなくスレッドを実行します。 32ビットアプリケーションには少なくとも1つのプロセスがあり、プロセスには常にメインスレッドと呼ばれる少なくとも1つの実行スレッドがあります。



繰り返しになりますが、 2006年に既にAMDの推奨事項に目を向けてみましょう。AMDのプロセッサーの結果は奇妙です。 「System.Threading名前空間、スレッドクラスなど、.Net Frameworkで使用可能なさまざまなスレッドオブジェクトを使用します。」



そして最後に、ロジックをオンにして、Parallel Extentionsはまだリリースではなく、プロジェクトは2007年末に開始され、マルチコアプロセッサはすべてのジョブで既に動作していたことを理解します。 PEが作成された理由-「開発者は、労働集約的なフロー制御に煩わされることなく、最新のマルチコアアーキテクチャを使用できるように作成されました。」



Parallel Extensionsについては、 3fonovからの良い投稿があります



All Articles