C ++中std :: thread优于pthread的优势[重复]

Posted

技术标签:

【中文标题】C ++中std :: thread优于pthread的优势[重复]【英文标题】:Advantage of std::thread over pthread in C++ [duplicate] 【发布时间】:2015-09-14 20:45:58 【问题描述】:

我见过使用pthread 用C++ 编写多线程程序的代码以及使用std::thread 库的其他代码。用线程库代替pthread有什么好处?

【问题讨论】:

【参考方案1】:

有多种优势。列出这些,不一定按重要性顺序。

    它是跨平台的。例如,默认情况下 pthreads 库在 Windows 上不可用。使用线程保证将使用可用的实现。 C++ 线程强制执行正确的行为。例如,试图破坏未加入、未分离线程的句柄会导致程序中止。这是一件非常好的事情,因为它让人们意识到他们在做什么。 C++ 线程作为一种语言完全集成到 C++ 中。您不再需要在某种结构中分配参数并将该结构的地址作为 void* 传递给您的 pthread 例程。通过使用可变参数模板,C++ 线程库允许您为线程启动例程提供任意数量的参数,并为您进行类型检查。 C++ 线程有一组很好的周边类,例如 Promise。现在,您实际上可以从线程中抛出异常而不会导致整个程序崩溃!

【讨论】:

@SergeyA 作为一个 C++ 新手......我应该完全接受这一点,还是应该经历学习这个指针(指针)函数(&指针) pthreads 系统的痛苦?值得我花时间吗?还是只是浪费时间? (上课,学习时间有限……) @bordeo,我不赞成提出如此广泛的建议。我相信,指向函数的风格在 C++ 中仍然很重要,但显然它越来越不受欢迎和被弃用。我想说,了解它,了解它是如何工作的,永远不要使用它:)

以上是关于C ++中std :: thread优于pthread的优势[重复]的主要内容,如果未能解决你的问题,请参考以下文章

C++ 11 std::thread 循环

std::thread

C++11 中 std::threads 向量的问题计算字母和单词的二元组

cpp►C++11标准线程库<thread>

C++11 并发指南三(std::mutex 详解)

[多线程]C++11多线程用法整理