thread.join()不是结果

时间:2014-04-03 07:44:38

标签: c++ multithreading

我正在使用线程,worker函数如下:

void threadDoIt(tso* tso0){
    while (true){
        task t = tso0->getNextTask();
        if (t.getState() == empty){
            break;
        }
        else {
            t.execute();
            TAL::taskExecuted(t);
        }
    }
}

/*...*/

vector<thread> threads;

for (int i = 0; i < cpus; i++){
    threads.push_back(thread(threadDoIt, tsos.at(i)));
}

for (int i = 0; i < threads.size(); i++){
    threads[i].join();
}

我经历过,有时候所有的任务都会被执行,但有时却没有。看起来连接方法存在问题。有什么想法吗?

0 个答案:

没有答案