-1

私はマルチスレッド プログラミングについて何も知らないので、ここに一般的な質問を投稿したいと思いました。どうすれば次のことができますか:

main() MyMethod を 30 秒ごとに実行する

MyMethod() 1. データを取得する 2. 計算を行う 3. 結果をファイルに保存する

メインが MyMethod の実行を再開する前に、結果の保存 (MyMethod ステップ 3) を確実に終了するにはどうすればよいですか? 基本的に、MyMethod が完了するまで、そのスレッドを何らかの方法でロックする必要があります。例として任意の言語を自由に使用してください。私は、そのようなことが実際にどのように行われるかという概念にもっと興味があります。

ありがとう

4

1 に答える 1

0

同期は必要ありません。保存は最後に行われるため、スレッド作業が完了していることを確認するだけで済みます。

#include <thread>
#include <unistd.h>


int MyMethod(){
    // some code
}

int run(){
    std::thread thrd(MyMethod);
    sleep(30);
    thrd.join();
}

int main(){
    while(true)
        run();  
}
于 2013-04-03T23:54:22.857 に答える