многопоточность — как создать многопоточное приложение в Stack Overflow

Возможный дубликат:
Простой пример многопоточности в C ++

Может кто-нибудь дать мне пример того, как создать простое приложение на C ++, которое запускает две функции одновременно? Я знаю, что этот вопрос связан с управлением потоками и многопоточностью, но я в основном программист php и не очень знаком с продвинутым программированием на C ++.

1

Решение

Вот простой пример:

#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>, которые дают вам доступ к возвращаемому значению функции потока.

9

Другие решения

Я собираюсь позволить вам сделать исследование самостоятельно, но простой способ достичь этого с std::async:

http://en.cppreference.com/w/cpp/thread/async

Обратите внимание, что это одновременно, но не обязательно одновременно.

Я считаю, что Boost имеет это тоже — это либо в Boost.Thread или Boost.ASIO

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector