Linux C++ 多线程指的是在 Linux 操作系统 下,使用 C++ 语言 编写程序,让一个进程同时运行多个执行流(线程),以提高程序的并发性能。
下面从概念、实现方式、核心知识点和简单示例几个层面帮你梳理。
Linux 中:
#include <pthread.h>
#include <thread>
✅ 实际项目中:优先用 C++11
std::thread
#include <iostream>
#include <thread>
void func(int id) {
std::cout << "Thread " << id << " is running\n";
}
int main() {
std::thread t1(func, 1);
std::thread t2(func, 2);
t1.join();
t2.join();
return 0;
}
编译(必须加 -pthread):
g++ test.cpp -std=c++11 -pthread
多个线程同时修改同一变量 ❌
int count = 0;
// 多个线程同时 count++ ❌
#include <mutex>
std::mutex mtx;
mtx.lock();
// 临界区
mtx.unlock();
或使用 RAII:
std::lock_guard<std::mutex> lock(mtx);
用于线程间通信(等待 / 通知)
std::condition_variable cv;
std::scoped_lockpthread_create / pthread_joinstd::async / 线程池✅ 网络服务器(一个连接一个线程 / 线程池)
✅ 音视频处理
✅ 游戏引擎
✅ 高性能计算
Linux C++ 多线程 = 在 Linux 下用 C++ 创建多个并发执行流,共享内存、协同工作,但需要小心同步与竞争问题。
如果你愿意,我可以:
你想往哪方面深入?