运行错误 terminate called without an active exception

运行错误:terminate called without an active exception,可能的原因 :下面的代码中的 

        t41.join();
        t42.join();
        t43.join();

注释掉会出现这个错误

#include "stdio.h"
#include 
#include 

int main(int argc, char **argv){


    std::thread t1([](){
        while(true){
            std::this_thread::sleep_for(std::chrono::seconds(1));
            printf(" t1 t1 t1 t1 ------------------------------------- \n");
        }
    });

    std::thread t2([](){
        while(true){
            std::this_thread::sleep_for(std::chrono::seconds(1));
            printf(" t2 t2 t2 t2 ------------------------------------- \n");
        }
    });

    std::thread t3([](){
        while(true){
            std::this_thread::sleep_for(std::chrono::seconds(1));
            printf(" t3 t3 t3 t3 ------------------------------------- \n");
        }
    });

    std::thread t4([](){
        std::thread t41([](){
            while(true){
                std::this_thread::sleep_for(std::chrono::seconds(1));
                printf(" t41 ------------------------------------- \n");
            }
        });

        std::thread t42([](){
            while(true){
                std::this_thread::sleep_for(std::chrono::seconds(1));
                printf(" t42 ------------------------------------- \n");
            }
        });

        std::thread t43([](){
            while(true){
                std::this_thread::sleep_for(std::chrono::seconds(1));
                printf(" t43 ------------------------------------- \n");
            }
        });
        t41.join();
        t42.join();
        t43.join();
    });

    t1.join();
    t2.join();
    t3.join();
    t4.join();

    return -1;
}

输出:

 t41 ------------------------------------- 
 t1 t1 t1 t1 ------------------------------------- 
 t2 t2 t2 t2 ------------------------------------- 
 t3 t3 t3 t3 ------------------------------------- 
 t42 ------------------------------------- 
 t43 ------------------------------------- 
 t1 t1 t1 t1 ------------------------------------- 
 t41 ------------------------------------- 
 t2 t2 t2 t2 ------------------------------------- 
 t3 t3 t3 t3 ------------------------------------- 
 t42 ------------------------------------- 
 t43 ------------------------------------- 
 t1 t1 t1 t1 ------------------------------------- 
 t3 t3 t3 t3 ------------------------------------- 
 t42 ------------------------------------- 
 t43 ------------------------------------- 
 t41 ------------------------------------- 
 t2 t2 t2 t2 ------------------------------------- 

线程中嵌套线程,好玩。 ps:CMAKE_CXX_STANDARD 11

 

你可能感兴趣的:(C++,基础)