#include <iostream> #include <thread> void myFunction() { std::cout << "Hello from thread!" << std::endl; } int main() { std::cout << "main" <<std::endl; while(1) {} std::thread myThread(myFunction); myThread.join(); return 0; }如何让主线程和分线程同事执行
时间: 2024-03-20 14:43:43 浏览: 102
#include_iostream.h_
4星 · 用户满意度95%
要让主线程和子线程同时执行,可以使用`std::thread`的`detach()`函数,将子线程分离出来,使其成为一个独立的线程,不再与主线程有关联。这样,主线程和子线程就可以并行执行。修改代码如下:
```c++
#include <iostream>
#include <thread>
void myFunction() {
std::cout << "Hello from thread!" << std::endl;
}
int main() {
std::cout << "main" <<std::endl;
std::thread myThread(myFunction);
myThread.detach();
while(1) {}
return 0;
}
```
注意,使用`detach()`函数后,就不能再使用`join()`函数等待子线程结束了,否则会出现运行时错误。因此,在使用`detach()`函数时,需要确保子线程的生命周期不会比主线程短,否则子线程可能会在主线程结束前被强制终止。
阅读全文