Возможный дубликат:
Простой пример многопоточности в 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