线程和锁

时间:2013-04-03 21:54:46

标签: multithreading

我对多线程编程一无所知所以想在这里发布一般性问题。我该怎么做:

main()的  每隔30秒运行MyMethod

的MyMethod()    1.获取数据    做计算    3.将结果保存到文件

如何在主开始再次运行MyMethod之前确保完成保存结果(MyMethod步骤3)?基本上我必须以某种方式锁定该线程,直到MyMethod完成。随意使用任何语言作为例子我对这些事情在现实中如何完成的概念更感兴趣。

谢谢

1 个答案:

答案 0 :(得分: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();  
}