C ++是否提供内置的多线程支持?

时间:2014-04-02 16:41:44

标签: c++ multithreading

我想建立像日常警报一样的项目。我想用c ++做这件事。为此,我需要多线程。 C ++是否提供内置的多线程支持,如Java Thread Class?或者还有其他可靠的方法吗?

4 个答案:

答案 0 :(得分:3)

从C ++开始11 C ++具有多线程支持类。您可能最感兴趣的课程是std::thread。还有像std::mutex这样的同步类。您可以在此处查看课程概述:http://en.cppreference.com/w/cpp/thread

答案 1 :(得分:3)

一些想法:

答案 2 :(得分:2)

在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--这两个强大的概念可能有助于更自然地实现多线程代码。

答案 3 :(得分:1)

在c ++ 11中,是的。 包括线程头,然后开始构建您的多线程应用程序 一本值得一读的书,是c++ concurrency in action 它会教你如何处理竞争条件的问题,如何制作线程安全的容器,非常重要,如何创建你的threadpool类