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