ブーストスレッドが実行メソッドを終了したかどうかを確実に知るにはどうすればよいですか? 、ありがたいことに、終了したスレッドに参加して、実行中の場合にのみ条件付きでスレッドに参加する必要がある場合に発生する競合状態を回避できます。
しかし、どうthread::interrupt()
ですか?スレッドが終了した後に呼び出すことはできますか?
ブーストスレッドが実行メソッドを終了したかどうかを確実に知るにはどうすればよいですか? 、ありがたいことに、終了したスレッドに参加して、実行中の場合にのみ条件付きでスレッドに参加する必要がある場合に発生する競合状態を回避できます。
しかし、どうthread::interrupt()
ですか?スレッドが終了した後に呼び出すことはできますか?
はい、このメソッドを安全に呼び出すことができます。
ドキュメントから:
*this が実行のスレッドを参照している場合、割り込みが有効な事前定義された中断ポイントの 1 つにスレッドが次に入るとき、または事前定義された中断ポイントの 1 つへの呼び出しで割り込みが現在ブロックされている場合に、スレッドが中断されるように要求します。有効にします。
boost::thread
オブジェクト ( ) が「実行のスレッド」でない場合*this
、つまり実行されていない場合、このメソッドを呼び出しても何も起こりません。