发布于2026-07-05 阅读(0)
扫一扫,手机访问
想在Ubuntu上搞C++多线程编程?其实没那么复杂。C++11标准库已经帮我们把最基础的工具准备好了——没错,就是那个头文件。下面这个简单的例子,可以让你快速感受一下怎么在C++里创建和管理线程。
当然,得确认一下你的编译器是不是支持C++11或更高版本。编译的时候,别忘了给g++加上-std=c++11标志(如果乐意,换成-std=c++14、-std=c++17也完全没问题)。
先来看个最直接的例子:
#include #include // 线程函数void helloFunction() {std::cout << "Hello from a thread!" << std::endl;}int main() {// 创建一个线程std::thread t(helloFunction);// 等待线程完成t.join();std::cout << "Hello from the main thread!" << std::endl;return 0;} 以上代码保存为multithreading_example.cpp,然后跑下面的编译命令:
g++ -std=c++11 multithreading_example.cpp -o multithreading_example编译完成,直接运行:
./multithreading_example你应该会看到两个线程分别打出各自的那句话——一个来自子线程,一个来自主线程。
std::mutex)和条件变量(std::condition_variable)这两位老兄来帮忙了,它们能有效防止资源竞争。thread_local关键字声明的变量,每个线程都会有一份独立的拷贝,彼此不干扰。头文件提供了原子类型和操作,可以在不加锁的情况下安全地进行某些并发操作,效率更高。pthread库。话虽如此,大多数情况下直接用头文件并不会遇到链接问题。万一真报错了,试试在编译命令里加个-pthread。掌握了这些基础概念和工具,在Ubuntu上探索C++多线程的世界就不会那么难了。随着实践的深入,你很快就能应对更复杂的并发场景。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8