有人可以举个例子来说明如何在C ++中创建一个同时运行两个函数的简单应用程序吗?我知道这个问题与线程管理和多线程有关,但我基本上是一个php程序员,我并不熟悉高级C ++编程。
答案 0 :(得分:10)
这是一个简单的例子:
#include <iostream>
#include <thread>
void f1() { std::cout << "This is function 1.\n"; }
void f2() { std::cout << "This is a different function, let's say 2.\n"; }
int main()
{
std::thread t1(f1), t2(f2); // run both functions at once
// Final synchronisation:
// All running threads must be either joined or detached
t1.join();
t2.join();
}
如果函数需要生成返回值,则应将上述线程对象与<future>
可运行的{{1}}对象组合在一起,这样就可以访问线程函数的返回值。 / p>
答案 1 :(得分:2)
我将让你自己做研究,但实现这一目标的一个简单方法是使用std::async
:
http://en.cppreference.com/w/cpp/thread/async
请注意,它同时发生,但不一定同时发生。
我相信Boost也有这个 - 它可以在Boost.Thread或Boost.ASIO中