質問:
計算を勉強しているものです。 Dual coreのマシンを購入し、Visual C++2005でコンパイルしても、CPUの使用率が50%にしかなりません。
二つのCPUを使い切る方法を知っている方教えてください。
よろしくお願いいたします。
答え:
一つのプログラム(プロセス)でCPUを使い切るとしたら、処理を別スレッドに分ける必要がありますね。
次のサンプルはMicrosoft Visual C++ 2005/Win32コンソールアプリです。
実際に実行してみるとThreadの関数を同時に二つのCPUで処理している様子がタスクマネージャーから伺えて面白かったです。

#include "stdafx.h"
#include <process.h>

void Thread(void* param)
{
for (int ii=0; ii<1000000; ii++){
printf("%d\n", ii);
}
}

int _tmain(int argc, _TCHAR* argv[])
{
int t1 = _beginthread(Thread, 0, NULL);
int t2 = _beginthread(Thread, 0, NULL);

while(1);

return 0;
}
補足の質問:
ありがとうございました。確かに、100%になりましたが、二つのCPUが勝手に動き、2回実行しています。これを半分づつに分けて実行するようにしたいのですが、どのように書けば良いでしょうか。教えてください。この質問・回答は役に立ちましたか?
答え:
ウイルススキャンしながら、ビデオを再生して下さい。
又は、デフラグしながら、ゲームをする。
等々!
他は答える:
Visual C++2005が2つのCPUを使用してコンパイルするように作られていないので2つのCPUを使い切ることはないと思います。

ウェブサイトのユーザーによる情報ポスト、JPQA.comのない保証の正しさ.

  • Windows Media Player(拡張子.wma)用のデータをMI...
  • 職場のサーバーは、ファイル形式ごとにフォルダをわけ...
  • 別のパソコンにあるフォントをもう一台のパソコンに入...
  • グラフィックスボードが「SiS 651」なんですが、新し...
  • 先程の者です。日立製 98ノートパソコン 形名 PC...
  • コマンドプロンプトでテキストファイルを作成し、PC名...