3

重複の可能性:
C++でのスレッド化の簡単な例

2つの関数を同時に実行するC++で簡単なアプリケーションを作成する方法の例を教えてもらえますか?この質問がスレッド管理とマルチスレッドに関係していることは知っていますが、私は基本的にphpプログラマーであり、高度なC++プログラミングにはあまり詳しくありません。

4

2 に答える 2

11

簡単な例を次に示します。

#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>、スレッド関数の戻り値にアクセスできるようにする必要があります。

于 2012-11-18T18:23:51.173 に答える
2

私はあなたに自分で調査をさせようとしていますが、これを達成する簡単な方法は次のstd::asyncとおりです:

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

同時に発生しますが、必ずしも同時に発生するわけではないことに注意してください。

Boostにもこれがあると思います-Boost.ThreadまたはBoost.ASIOのいずれかにあります

于 2012-11-18T18:23:22.870 に答える