ワーカースレッドを使用した時のCPU稼働率に関して – プログラミング – Home

ワーカースレッドを使用した時のCPU稼...
 
通知
すべてクリア

ワーカースレッドを使用した時のCPU稼働率に関して


arisu
 arisu
(@arisu)
ゲスト
結合: 18年前
投稿: 1
Topic starter  

こんばんは、いつもお世話になっております。

初歩的質問で申し訳ございませんが、
ご教授の程お願いいたします。

環境はVC++6.0 SDI WinXP_SP2です

Q1.ワーカースレッドの中でWhile文を使用していますが、
常にCPUがFULL状態です。なって当然なのでしょうか?
ちなみに処理をしなくて、while文だけでもFULL状態です。

UINT TestThread(IPVOID pParam)
{
while(g_StopFlag)
{
    処理
}
return 0;
}

Q2.構造体の外部変数の宣言はどのようなコードを書いたらいいのでしょうか?
extern 構造体名 変数名;ではいけないのでしょうか。
上記だと変数名の前に「;」が必要です。というエラーがでてしまいます。

以上、アドバイスお願いいたします。


引用解決済
トピックタグ
超初心者
 超初心者
(@超初心者)
ゲスト
結合: 23年前
投稿: 139
 

Q1

なって当然です。
CPUは常に動いています。動いていれば100%です。
Sleepや同期イベント待ちなどでそのスレッドを実行していないなら下がるでしょう。

スレッドを実行しているか、どのスレッドも実行していない(実際はそれ専用の処理を
実行しているけど)の平均値を取って30%とかを算出しているんだよ。

Q2

もう少しプログラムとエラーを教えてくれないと正確なこといえないけど。
ということで推測

その構造体を定義していないんじゃないの?
構造体を定義しているヘッダファイルを#includeしてないんでしょ。


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

Q2
C++ですか?
実はCで、structも書かないといけないとか。
まぁいずれにせよ情報が少なすぎて憶測の域をでませんが。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

Q1 処理時間が遅くても構わないのなら、処理の初めか終わりに
  「Sleep(1);」を入れてみましょう。
  それだけでも大分変わるはずです。

Q2 その前に、「変数名が見当たりません。」等のエラーがでませんか?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました