std::function thread
时间: 2024-09-18 11:15:07 浏览: 32
C++11中std::future的具体使用方法
`std::function` 和 `std::thread` 是 C++ 标准库中的两个不同概念。
`std::function` 是一个模板类,它允许你在运行时存储并执行任意类型的函数或函数指针。它提供了一种通用的方式来传递和处理回调,使得可以在不需要知道具体函数签名的情况下对它们进行操作。
而 `std::thread` 是线程库的一部分,用于创建、启动和管理线程。它允许你将一段代码作为线程任务,并在新的线程上执行,从而实现并发执行。
当你想要在一个线程中使用函数时,可以这样做:
```cpp
#include <iostream>
#include <thread>
void my_function(int x) {
std::cout << "Function with argument: " << x << '\n';
}
int main() {
// 创建一个 std::function 对象,存储 my_function 函数引用
std::function<void(int)> func = my_function;
// 使用 std::thread 来启动一个新的线程,传入 std::function 对象
std::thread worker_thread(func, 42);
// 主线程继续执行其他任务,worker_thread 子线程也在执行
// 等待 worker_thread 完成(此处未显示等待)
worker_thread.join();
return 0;
}
```
阅读全文