C++是否提供内置的多线程支持
Does C++ provide built in multi threading support?
我想建立一个像每日警报这样的项目。我想用 c++ 来做这件事。为此,我需要多线程。C++是否提供像java线程类这样的内置多线程支持?或者有没有其他可靠的方法可以做到这一点?
在 c++11 中使用线程非常简单,首先包含线程标头,然后将要运行的函子传递到线程构造函数中。
完成后请务必加入线程,否则它是 UB。
#include <thread>
int main() {
std::thread work([]() { std::cout << "Hi from a thread!" << std::endl; });
work.join();
}
线程不可复制,但它们是可移动的,因此您可以从函数调用中返回线程。
Werner 的帖子链接到所有C++的终极网站 - cppreference.com,线程支持库与 future 和 async 一起被描述 - 这两个强大的概念可能有助于更自然地实现您的多线程代码。
一些想法:
- 如果在 c++11 上:标准库中存在线程:http://en.cppreference.com/w/cpp/thread
- boost 还提供了一些线程(独立于 C++11): http://www.boost.org/doc/libs/1_55_0/doc/html/thread.html
- 您可能需要检查特定于操作系统的库,例如 unix/linux 通常具有可用的 pthread (http://en.wikipedia.org/wiki/POSIX_Threads)
- 有提供独立于操作系统的抽象的通信库,例如 ACE:http://www.cs.wustl.edu/~schmidt/ACE.html
从
C++11开始,C++具有多线程支持的类。您可能最感兴趣的课程是 std::thread
。还有用于同步的类,例如 std::mutex
.您可以在此处查看课程的概述:http://en.cppreference.com/w/cpp/thread。
在C ++ 11中,是的。包括线程标头,然后开始构建多线程应用程序一本值得一读的书,是C++并发在行动吗它将教你如何处理竞争条件的问题,如何使线程安全的容器,以及非常重要的,如何创建你的线程池类
相关文章:
- 在C++中使用cURL和多线程
- 多线程双缓冲区
- 为什么我的多线程作业队列崩溃
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 试图创建一个多线程程序来查找0-100000000之间的总素数
- 为什么一个向量上的多线程操作很慢
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 全局变量 多读取器 一个写入器多线程安全?
- boost::文件系统::recursive_directory_iterator多线程安全
- 如何阻止TensorFlow的多线程
- 如何在多线程中正确使用unique_ptr进行多态性?
- 并发/多线程:是否可以以这种方式生成相同的输出?
- sigwait() 在多线程程序中不起作用
- 多线程程序中出现意外的内存泄漏
- 具有多线程支持的 RenderClass,将函数调用推送到向量以在另一个线程上调用
- 支持多线程方法来构建数组中所有元素的集合吗
- 支持多线程的c++ HashMap
- 链接时间优化与多线程支持冲突
- linux共享库支持多线程应用程序回调
- C++是否提供内置的多线程支持