商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > C++多线程在CentOS如何实现

C++多线程在CentOS如何实现

  发布于2026-07-31 阅读(0)

扫一扫,手机访问

在CentOS上跑C++多线程,其实比你想象的要简单。C++11标准库自带的头文件,就是一套跨平台的线程工具,不管你在哪个Linux发行版上,写法基本一样。下面这个例子,拿CentOS 7演示一遍,从环境搭建到运行,一步到位。

C++多线程在CentOS如何实现

第一步,先确认编译器版本。CentOS 7自带的GCC默认是4.8以下,不支持C++11的线程库。需要升级到4.8或更高版本。最简单的办法是用SCL(Software Collections)来安装:

sudo yum install centos-release-scl
sudo yum install devtoolset-7
scl enable devtoolset-7 bash

这条命令安装的是GCC 7系列,足够用了。执行完scl enable之后,当前终端会话里就能用新的GCC了。

第二步,写一个简单的测试文件,比如multithread_example.cpp,把下面的代码贴进去:

#include 
#include 

void hello_function() {
    std::cout << "Hello from a thread!" << std::endl;
}

int main() {
    // 创建一个线程
    std::thread t(hello_function);
    // 等待线程完成
    t.join();
    std::cout << "Hello from the main function!" << std::endl;
    return 0;
}

这段代码逻辑很简单:主线程创建一个子线程来执行hello_function,然后调用join()等待子线程结束,最后主线程自己打印一句话。注意一定要加join()或者detach(),否则程序退出时会崩溃。

第三步,编译。用g++加上-std=c++11-pthread两个选项:

g++ -std=c++11 -pthread multithread_example.cpp -o multithread_example

这里-pthread是必须的,它告诉编译器链接POSIX线程库。没有这个选项,链接会报错。

第四步,运行:

./multithread_example

输出应该是两行,顺序可能交替,但内容大致是:

Hello from a thread!
Hello from the main function!

如果看到这两行,恭喜你,多线程跑通了。

平时做项目,光有还不够。比如线程池、条件变量、互斥锁这些高级功能,C++11标准库都提供了对应类:std::mutexstd::condition_variablestd::future等。它们配合一起用,能写出很健壮的多线程代码。

另外提一句,CentOS上也可以使用Boost.Thread,它比标准库更早成熟,跨平台兼容性更好,但需要额外安装Boost库。如果你项目里已经依赖Boost,直接用Boost.Thread也无妨;否则还是用标准库更省心,不用额外引入依赖。

本文转载于:https://www.yisu.com/ask/85039949.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注