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

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

【问题讨论】:

    标签: c++ multithreading pthreads


    【解决方案1】:

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

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

    【讨论】:

    • @SergeyA 作为一个 C++ 新手......我应该完全接受这一点,还是应该经历学习这个指针(指针){函数(&指针)} pthreads 系统的痛苦?值得我花时间吗?还是只是浪费时间? (上课,学习时间有限……)
    • @bordeo,我不赞成提出如此广泛的建议。我相信,指向函数的风格在 C++ 中仍然很重要,但显然它越来越不受欢迎和被弃用。我想说,了解它,了解它是如何工作的,永远不要使用它:)
    猜你喜欢
    • 2016-09-27
    • 1970-01-01
    • 2010-11-15
    • 2017-05-04
    • 2017-10-25
    • 2012-08-14
    • 2014-09-26
    • 2020-12-21
    • 1970-01-01
    相关资源
    最近更新 更多