多线程
C++ 中的多线程编程是一项高级特性,用于开发能够并发执行的应用程序。C++11 标准引入了原生的多线程支持,使得在 C++ 中编写多线程代码变得更加简单和安全。以下是关于 C++ 多线程的一些关键概念和常见操作。
1. 创建线程
C++11 提供了 std::thread 类,用于创建和管理线程。你可以通过传递一个可调用对象(如函数指针、lambda 表达式、函数对象等)来启动线程。
#include <iostream>
#include <thread>
void threadFunction() {
std::cout << "Hello from thread!" << std::endl;
}
int main() {
std::thread t(threadFunction); // 创建一个线程执行threadFunction
t.join(); // 等待线程t完成
return 0;
}
std::thread: 用于表示并控制线程的类。join(): 阻塞当前线程,直到线程t结束。detach(): 将线程与当前线程分离,允许它独立运行,不能再join。
2. 传递参数
你可以向线程传递参数。C++ 会自动处理参数的复制或移动。
void printNumber(int n) {
std::cout << "Number: " << n << std::endl;
}
int main() {
std::thread t(printNumber, 42); // 向线程传递参数42
t.join();
return 0;
}
也可以通过引用传递参数,使用 std::ref 包装参数:
void modifyValue(int &n) {
n *= 2;
}
int main() {
int value = 10;
std::thread t(modifyValue, std::ref(value)); // 通过引用传递
t.join();
std::cout << "Modified value: " << value << std::endl; // 输出20
re

最低0.47元/天 解锁文章
15万+

被折叠的 条评论
为什么被折叠?



