代码之家  ›  专栏  ›  技术社区  ›  Tomaka17

C++ 2010中C++的<线程>标题的占位符

  •  3
  • Tomaka17  · 技术社区  · 15 年前

    我已经在VisualC++ 2010中使用了C++中的一些新特性,比如正则表达式或lambda函数。 但有一个主要特征是缺失的: 这个 <thread> 页眉 .

    你知道有什么密码可以作为 更换 ?

    目前我正在使用Boost的线程,但它与标准的线程并不完全相同,它给了我大量的编译时间。我还发现:线程,但作为一个业余爱好者,我不想花钱在它。

    我不认为编写代码太困难(尽管我可能错了),但我对win32 API的了解不够。

    3 回复  |  直到 15 年前
        1
  •  5
  •   Community Mohan Dere    9 年前

    我用过 boost::thread 在性能敏感的生产代码中,它比我们在合理的时间内构建的任何代码都要复杂和性能更高。在我看来,读写锁是一件很美的事情。你还有一个额外的好处 the person who wrote the code the book 如果确实需要帮助,则在堆栈溢出时处于活动状态。

    由于您使用的是Windows,因此可以通过明智地使用Visual Studio来提高编译时间。 precompiled headers ,以避免重复加载增压收割台。

        2
  •  4
  •   Matteo Italia    15 年前

    我觉得 boost::thread 是你最好的选择。经过全面测试, std::thread 基于此。你应该记住不同的领域,并尽你所能去处理它们。

    按规定 here :


    这个线程的设计是从boost::thread演变而来的。其目的是尽可能多地重用boost::thread体验,保持良好状态,并更改响应此字段体验的已知限制所必需的最小值。
    • Boost不可复制,一个句柄映射到一个OS线程,保留了语义。但是这个线程是可移动的,允许从工厂函数返回线程并放入容器中。
    • 这个建议增加了对boost::线程的取消,这是一个非常复杂的问题。这种改变不仅对线程有很大的影响,而且对C++线程库的其余部分也有很大的影响。人们认为,这种巨大的变化是合理的,因为它的好处。
      • 线程析构函数现在必须在分离之前调用Cancel,以避免在取消父线程时意外泄漏子线程。
      • 现在需要显式分离成员才能启用不取消分离。
    • 线程句柄和线程标识的概念被分为两个类(它们在boost::thread中是相同的类)。这是为了支持线程标识的更容易操作和存储。
    • 已经添加了创建线程ID的能力,该ID可以保证与其他可接合线程进行比较(boost::thread没有此功能)。对于那些想知道它是否与前一个调用由同一个线程执行的代码来说,这很方便(递归互斥体是一个具体的例子)。
    • 存在一个“后门”来获取本机线程句柄,这样客户机可以根据需要使用底层操作系统来操作线程。
        3
  •  -1
  •   Alexander Rafferty    15 年前

    您可以使用win32线程函数。使用起来相当简单,只需要几个函数调用就可以工作。快速的谷歌搜索可以解决你所有的问题。