SO中文参考
首页
(current)
程序语言
c
java
python
c++
go
javascript
swift
c#
操作系统
linux
ubuntu
centos
unix
数据库
oracle
mysql
mongodb
postgresql
框架
node.js
angular
react-native
avalon
django
twisted
hadoop
.net
移动开发
android
ios
搜索
C++11 及以上版本中 std::thread 相对于 pthread 的优势[重复]
问题描述
投票:0
回答:1
我见过使用
pthread
在 C++11(或更高版本)中编写多线程程序的代码以及使用
std::thread
库的其他代码。使用
std::thread
库代替
pthread
有什么优势?
c++
multithreading
c++11
pthreads
std
1个回答
17
投票
有多种优点。列出这些,不一定按照重要性顺序。
它是跨平台的。例如,默认情况下,pthreads 库在 Windows 上不可用。使用线程保证将使用可用的实现。
C++ 线程强制执行正确的行为。例如,尝试破坏未加入、未分离线程的句柄会导致程序中止。这是一件非常好的事情,因为它让人们意识到他们在做什么。
C++ 线程作为一种语言完全融入到 C++ 中。您不再需要在某种结构中分配参数并将该结构的地址作为 void* 传递给您的 pthread 例程。通过使用可变参数模板,C++ 线程库允许您向线程启动例程提供任意数量的参数,并为您进行类型检查。
C++ 线程有一组很好的周围类,例如 Promise。现在您实际上可以从线程中抛出异常,而不会导致整个程序崩溃!
最新问题
当我的所有输入都麻木时,为什么使用带有函数的循环会给出不同的结果?
使用 mongo 驱动程序的 MongoDB 事务
如何将项目提交到 GitHub 上托管的新存储库?
如何将项目提交到新存储库? Git 中心
在 Laravel 11 中找不到页面时渲染默认的 Laravel 404 页面
使用 VSCode 调试器进行 Jest 测试会抛出错误“SyntaxError:无法在模块外部使用 import 语句”
SimpleSequentialChain 中的KeyError
某些自定义字体未出现在 Tailwind CSS 中
Transfer组件两侧都有树形结构
Angular 反应式表单 hasValidator 对于自定义验证器函数返回 false
./node_modules/node-libcurl/lib/binding/node_libcurl.node 中出现错误
致命错误:特征/密集:没有这样的文件或目录
为什么当我更改复制的列表时,原始列表会更改
如何在不使用shutil.copy的情况下复制文件
GET/fonts/….ttf 网站上出现 HTTP 404 错误
oracle中旋转时如何添加条件?
SymPy 中符号大小的符号数组
如何在没有`os.rename`或`shutil`的情况下在Python中复制文件?
如何防止使用 Google Calendar API 重复创建事件
如何将 axum-login 与 axum-typed-routing 一起使用?
© www.soinside.com 2019 - 2024. All rights reserved.