11/10/25 11:21:35.66
【OS】 WindowsXP SP3
【言語】 c++
【実行環境】VC++ 2010 + boost
【その他特記する事項】-
以下に示す2パターンの記述で、どっちでもイイヨ…、どちらが良い、どちらもダメで他の方法が良いか、ご指導お願いします。
マルチスレッド処理するクラス(以下、クラスA)をつくっています。
以下のスレッドを生成します。
・ネットワーク経由でデータを受信する
・受信したデータを内部で加工する
・加工したデータを画面に表示する
スレッドを実行する方法について考えています。
{
クラスAのインスタンスaを作成
aとスレッド関数名を指定してスレッド生成・開始×3
join
}
とするか
{
クラスAのインスタンスを生成して
コンストラクタ内でスレッドを生成・開始
}// デストラクタ内でjoin
とするか迷っています。
普通は前者のようにする気がします。
後者にすると、一見スレッドが生成されていることに気がつきません。
ですが、クラス・インスタンスの独立性的なもので考えると後者でも良いような気がしました。
が、結局、デストラクタでjoinすることで、
元のスレッドが、a配下のスレッドの終了を待機してしまう、という訳のわからなさがあります。
以上、よろしくお願いします。