std::thread
C++11 标准引入了对多线程的支持,使得开发者可以直接在语言层面进行并发编程。以下是 C++11 中与线程相关的一些关键概念和用法:
1. std::thread
简介
std::thread
是 C++11 提供的线程类,位于<thread>
头文件中。- 创建线程时,可以将一个可调用对象(函数、lambda 表达式、函数对象等)作为参数传入构造函数。
#include <iostream>
#include <thread>
void threadFunction() {
std::cout << "Thread is running." << std::endl;
}
int main() {
std::thread t(threadFunction); // 创建线程并运行
t.join(); // 等待线程结束
return 0;
}
2. 常用操作
a. 启动线程
- 使用
std::thread
构造函数启动一个新的线程。 - 可以传递参数给线程函数。
void threadFunction(int x) {
std::cout << "Value: " << x << std::endl;
}
std::thread t(threadFunction, 42);
t.join();
b. 等待线程完成 (join
)
- 调用
join()
方法会阻塞当前线程,直到目标线程执行完毕。