我想创建一个在进行JNI调用后无限期运行的C ++ 11线程。为什么会产生致命信号?
#include <thread>
static void teste()
{
while(true)
LOGI("IN TEST");
}
JNIEXPORT void Java_blahblah(JNIEnv *javaEnvironment, jobject self)
{
std::thread t(teste);
//t.join(); //I don't want to join it here.
}
我不需要C ++ 11线程来调用JNI或类似的东西。
答案 0 :(得分:2)
根据this answer,如果线程在销毁时仍然可以连接,则thread
的析构函数将调用std::terminate
。
如果您不想加入该主题,可以通过分离该主题来解决此问题。
std::thread t(teste).detach();