C++手写一个thread
时间: 2023-09-04 11:06:49 浏览: 58
可以使用C++11中的std::thread类来手动创建一个线程,以下是一个简单的示例代码:
```c++
#include <iostream>
#include <thread>
void threadFunc(int n) {
std::cout << "Thread " << n << " started" << std::endl;
// 执行一些操作
std::cout << "Thread " << n << " finished" << std::endl;
}
int main() {
std::thread t1(threadFunc, 1); // 创建一个新线程,并将 threadFunc 函数作为参数传递
std::thread t2(threadFunc, 2);
// 等待线程结束
t1.join();
t2.join();
return 0;
}
```
在这个例子中,我们定义了一个threadFunc函数,它接受一个整数参数n,并输出一些文本。我们使用std::thread类来创建了两个新的线程t1和t2,并将threadFunc函数作为参数传递给它们。我们使用join()函数等待线程结束,以确保线程执行完成后程序才会退出。
需要注意的是,如果线程函数不是静态函数或全局函数,则需要使用类的成员函数来作为线程函数,并且需要传递一个指向该类对象的指针作为额外的参数。此外,在使用std::thread类时需要小心管理线程的资源,避免出现竞争条件和死锁等问题。