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。现在您实际上可以从线程中抛出异常,而不会导致整个程序崩溃!
最新问题
目录名称中的空格
Azure 中所有警报的安全自动化
VTK IO 的 C/C++ 库 [已关闭]
gtsummary 中的 CDC 脚注符号(将脚注数字符号调整为 gtsummary 对象中的其他符号)
Flutter 'Text' 不是一个函数。尝试更正名称以匹配现有函数,或定义名为
从 Azure VM 上运行的应用程序收集应用程序日志
Oracle 云:权限被拒绝(publickey、gssapi-keyex、gssapi-with-mic)
为什么当没有可观察对象发出值时我的 RxJS 合并订阅会触发?
VS-Code 中 doctype 主线出现 HTML 错误
在运行时将 JSON 序列化和反序列化为类型对象,而不存储类型信息
无法将数值分配给打字稿中的数字模板字符串
从今天起使用 Python 迭代未来 12 个月
在终端中合并文件夹和文件覆盖重复项
美国或加拿大 2024 年最佳提供商 iptv?
如何从父路由的组件访问激活的子路由的数据?
鹅毛笔移动自定义属性
使用 Jackson 进行动态序列化 - 删除具有特定注释的字段
actix_web 提供的标头无效
我无法在我的 django 论坛应用程序中实现 AJAX 来发布问题
为什么 pandas 舍入与 python 舍入不同?
© www.soinside.com 2019 - 2024. All rights reserved.