相关疑难解决方法(0)

C++ 11可以判断std :: thread是否处于活动状态?

令我惊讶的是,一个已经完成执行但尚未加入的C++ 11 std :: thread对象仍然被认为是一个活动的执行线程.下面的代码示例(在Xubuntu 13.03上使用g ++ 4.7.3构建)说明了这一点.有谁知道C++ 11标准是否提供了一种方法来检测std :: thread对象是否仍在主动运行代码?

#include <thread>
#include <chrono>
#include <iostream>
#include <pthread.h>
#include <functional>
int main() {
    auto lambdaThread = std::thread([](){std::cout<<"Excuting lambda thread"<<std::endl;});
    std::this_thread::sleep_for(std::chrono::milliseconds(250));
    if(lambdaThread.joinable()) {
        std::cout<<"Lambda thread has exited but is still joinable"<<std::endl;
        lambdaThread.join();
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ multithreading c++11

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

c++11 ×1

multithreading ×1