8

プロセスで約 300 のブースト スレッドを作成しています。スレッド ID に基づいて特定のスレッドに参加する方法はありますか?

4

1 に答える 1

9

それはあなたがsをどのように救うかにかかっていますboost::thread。それらをコンテナに保存する場合(をT = boost::thread*使用)、次のようなものを簡単に使用できます

for(iterator it = ctn.begin(); it != ctn.end(); ++it){
    if(it->get_id() == join_thread_id){
        it->join();
        break;
    }        
}

ただし、スレッドをどこかに保存new boost::threadせず、ポインターを保存せずに使用するだけの場合、ブーストは自動ブックキーピング機能を提供しないため、それは不可能です。

boost::thread::id1. 備考: を使用して ID を保存する必要があることに注意してください。
2. 備考:std::map<boost::thread::id,boost::thread*>このようなタスクには便利かもしれません。

于 2012-12-19T12:07:11.870 に答える