可能重复:
C++ 中线程的简单示例
谁能给我一个例子,如何在 C++ 中创建一个同时运行两个函数的简单应用程序?我知道这个问题与线程管理和多线程有关,但我基本上是一个 php 程序员,我对高级 C++ 编程并不熟悉。
可能重复:
C++ 中线程的简单示例
谁能给我一个例子,如何在 C++ 中创建一个同时运行两个函数的简单应用程序?我知道这个问题与线程管理和多线程有关,但我基本上是一个 php 程序员,我对高级 C++ 编程并不熟悉。
这是一个简单的例子:
#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();
}
如果您的函数需要产生返回值,您应该将上述线程对象与std::packaged_task
可运行的对象结合起来,这些对象可以从中获得<future>
,这样您就可以访问线程函数的返回值。
我将让您自己进行研究,但实现这一目标的简单方法是std::async
:
http://en.cppreference.com/w/cpp/thread/async
请注意,它是同时发生的,但不一定是同时发生的。
我相信 Boost 也有这个 - 它在 Boost.Thread 或 Boost.ASIO 中