我不知道关于多线程编程的任何内容,所以想在这里发布一个普遍的问题。我怎样才能做到以下几点:线程和锁
的main() 运行的MyMethod每隔30秒
的MyMethod() 1.获取数据 2.不计算 3.保存结果到文件
哪有在主开始再次运行MyMethod之前,我确保完成了保存结果(MyMethod步骤3)?基本上我必须锁定该线程,直到MyMethod完成。随意使用任何语言作为例子,我更关心这些事情在现实中是如何完成的。
谢谢
我不知道关于多线程编程的任何内容,所以想在这里发布一个普遍的问题。我怎样才能做到以下几点:线程和锁
的main() 运行的MyMethod每隔30秒
的MyMethod() 1.获取数据 2.不计算 3.保存结果到文件
哪有在主开始再次运行MyMethod之前,我确保完成了保存结果(MyMethod步骤3)?基本上我必须锁定该线程,直到MyMethod完成。随意使用任何语言作为例子,我更关心这些事情在现实中是如何完成的。
谢谢
你不需要同步。您只需确保线程工作已完成,因为保存在最后发生。
#include <thread>
#include <unistd.h>
int MyMethod(){
// some code
}
int run(){
std::thread thrd(MyMethod);
sleep(30);
thrd.join();
}
int main(){
while(true)
run();
}
除了启动线程一次,main()还要做什么吗?线程不仅可以标记开始时间,执行123,标记结束时间,计算intervalMs =结束开始,如果(30000-intervalMs)不是负数,睡眠(30000-intervalMs),循环返回?自主操作,不锁定,不同步,启动线程后不需要主线程动作,启动多线程的机会为零。 – 2013-04-04 09:43:43