linux c++ 多线程编程实例在 Linux 系统上,C++ 多线程编程通常使用 <thread> 头文件中提供的标准C++ 线程库。下面是一个简单的C++ 多线程编程实例,演示了如何使用标准库创建和管理线程:
#include <iostream>
#include <thread>
#include <vector>
// 函数,将在多个线程中执行
void printHello(int id) {
std::cout << "Hello from thread " << id << std::endl;
}
int main() {
// 定义线程数量
const int numThreads = 5;
// 创建一个线程数组
std::vector<std::thread> threads;
// 启动多个线程
for (int i = 0; i < numThreads; ++i) {
// 使用 Lambda 表达式作为线程函数
threads.push_back(std::thread([i] {
printHello(i);
}));
}
// 等待所有线程执行完毕
for (auto& thread : threads) {
thread.join();
}
std::cout << "All threads joined!" << std::endl;
return 0;
}
在这个例子中,我们创建了一个包含 5 个线程的线程数组。每个线程通过Lambda 表达式调用printHello 函数,并传递一个标识符作为参数。printHello 函数简单地在控制台输出一条消息,指示线程的标识符。
要编译这个程序,你可以使用类似以下的命令:
thread技术g++ -std=c++11 -pthread filename.cpp -o output
其中,-std=c++11 是用于启用C++11 标准的选项,-pthread 是用于启用 POSIX 线程库的选项。
运行编译后的可执行文件,你将看到多个线程并发地执行,输出类似以下的结果:
Hello from thread 0
Hello from thread 1
Hello from thread 2
Hello from thread 3
Hello from thread 4
All threads joined!
这只是一个简单的例子,实际上,多线程编程涉及到更复杂的同步和互斥操作,以确保线程之间的数据共享和访问的正确性。在实际项目中,你可能会使用更复杂的多线程技术,例如互斥锁、条件变量等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论