void sub_thread() //在該子執行緒里開啟子執行緒串列
{
list<thread* > thread_list;
while(1)
{
等待接受信號:xxx
if(xxx==stop)
{
for(auto t:thread_list)
{
t->join() // 在這里卡住,走不到下一步
下一步操作
}
}else
{
thread_list.push_back(new thread(...)); //j加入新執行緒
}
}
}
int main()
{
while(1)
{
等待接受信號:xxx
thread th(sub_thread()); //開啟執行緒,并獨立出來
th.detach();
}
}
uj5u.com熱心網友回復:
join就是等待執行緒結束uj5u.com熱心網友回復:
哦哦 我題目沒說清楚,在收到stop信號時執行緒里會自動停止,但是停止了,join方法還是阻塞的,而且(假設main里開啟了兩個獨立的sub_thread)sub1阻塞在join()這里,sub2也會被阻塞,就是沒搞懂里面什么原理轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/27665.html
標籤:C++ 語言
