C++ 多线程同时执行一个函数
时间: 2024-10-18 17:24:29 浏览: 34
在C++中,为了实现多线程同时执行同一个函数,你可以使用标准库中的`std::thread`类。首先,你需要包含头文件`<thread>`。下面是一个基本的例子:
```cpp
#include <iostream>
#include <thread>
// 要在一个新线程上运行的函数
void threadFunction() {
std::cout << "Hello from a separate thread!" << std::endl;
}
int main() {
// 创建一个新的线程并传入要执行的函数
std::thread myThread(threadFunction);
// 主线程继续执行其他任务
for (int i = 0; i < 5; ++i) {
std::cout << "Main thread is doing something else... (" << i << ")" << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(1)); // 暂停主线程
}
// 等待子线程完成
myThread.join();
return 0;
}
```
在这个例子中,`threadFunction`会被复制到新的线程上,并在新线程上独立执行。`join()`方法用于等待线程结束。注意,为了保证线程安全,如果函数操作共享资源,你可能需要使用互斥锁(`std::mutex`)或其他同步机制。
阅读全文