如何在C ++中创建多线程应用程序

时间:2012-11-18 18:20:35

标签: c++ multithreading

  

可能重复:
  Simple example of threading in C++

有人可以举个例子来说明如何在C ++中创建一个同时运行两个函数的简单应用程序吗?我知道这个问题与线程管理和多线程有关,但我基本上是一个php程序员,我并不熟悉高级C ++编程。

2 个答案:

答案 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中