c++创建线程
时间: 2023-08-03 18:25:22 浏览: 52
在C++中,可以使用标准库中的`<thread>`头文件来创建线程。常用的创建线程的方式有以下两种:
1. 使用函数指针
可以使用函数指针来创建线程,例如以下代码:
```
#include <iostream>
#include <thread>
void ThreadFunc()
{
std::cout << "This is a thread." << std::endl;
}
int main()
{
std::thread t(ThreadFunc);
t.join();
return 0;
}
```
在上述代码中,`ThreadFunc`函数是线程执行的函数,通过`std::thread`类创建了一个线程`t`,并将`ThreadFunc`函数作为参数传入,最后通过`t.join()`等待线程执行完毕。
2. 使用lambda表达式
除了使用函数指针,还可以使用lambda表达式来创建线程,例如以下代码:
```
#include <iostream>
#include <thread>
int main()
{
std::thread t([](){
std::cout << "This is a thread." << std::endl;
});
t.join();
return 0;
}
```
在上述代码中,使用了一个lambda表达式来作为线程执行的函数,通过`std::thread`类创建了一个线程`t`,最后通过`t.join()`等待线程执行完毕。
需要注意的是,在使用线程时,必须要保证线程对象的生命周期长于线程的执行时间,否则可能会导致程序崩溃。另外,还需要注意线程之间的共享资源访问,需要使用互斥量等同步机制来保证线程安全。