我知道
但是,如果它正在调用的函数执行完成后,它是否也会被销毁? 如果不会,这样的线程会发生什么情况?我能否仍然
std::thread
析构函数会在主函数退出时被调用,或者当线程对象超出作用域时被调用。但是,如果它正在调用的函数执行完成后,它是否也会被销毁? 如果不会,这样的线程会发生什么情况?我能否仍然
join()
它?join()
吗?joinable()
。所以,您仍然可以使用join()
。delete
。#include <thread>
#include <iostream>
#include <chrono>
using namespace std::chrono_literals;
void foo() {
std::cout << "Hello from thread!" << std::endl;
}
int main() {
std::thread t(foo);
std::this_thread::sleep_for(1s);
std::cout << "t.joinable() is " << t.joinable() << std::endl;
t.join();
}
Hello from thread! t.joinable() is 1
点击此处查看实时演示。