関数が終了しても関数内で呼び出したスレッドを止めない方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 関数が終了しても関数内で呼び出したスレッドを止めない方法

Re: 関数が終了しても関数内で呼び出したスレッドを止めない方法

#2

by YuO » 6年前

普通,スレッドを作成した関数が終了したところでスレッドの実行は終了しません。
どのような方法で,スレッドを生成し,終了したことを確認しているのでしょうか。

関数が終了しても関数内で呼び出したスレッドを止めない方法

#1

by むずかC » 6年前

あるパケットを受信すると
OnPacket(packet) のような関数が呼ばれます。その中で処理を行って返信するコードを書いています。
この処理はマルチスレッドを実現しておらず、何個もパケットが来ると処理完了まで次の処理が始まりません。

OnPacket 内でスレッドを生成しても、OnPacket が終了すると当然スレッドも終了します。
OnPacketをスレッド化すれば良いのですが都合上難しく他の方法を探ってます。
別プロセスで動かすのも避けたいです。

何か使えそうな実装があれば教えていただきたいです

環境:
C++,Linux,boost

ページトップ