我想在Linux上创建一个守护进程,它基本上会一个接一个地运行两个函数(两个空洞)。我尝试了两种方法:
1)首先
void func1()
{
boost::posix_time::seconds workTime(3);
boost::this_thread::sleep(workTime);
func2();
}
void func2()
{
boost::posix_time::seconds workTime(3);
boost::this_thread::sleep(workTime);
func1();
}
int main()
{
func1();
return 0;
}
2)使用线程的第二种方法:
void func1()
{
boost::posix_time::seconds workTime(3);
boost::this_thread::sleep(workTime);
boost::thread func2thread(func2);
func2thread.join();
}
void func2()
{
boost::posix_time::seconds workTime(3);
boost::this_thread::sleep(workTime);
boost::thread func1thread(func1);
func1thread.join();
}
int main()
{
boost::thread func1thread(func1);
func1thread.join();
return 0;
}
这两种情况最终都会导致堆栈溢出。我希望函数依次运行的原因是因为我希望第一个填充数组,第二个处理其中的值然后清除它。实现这样的事情的最佳方式是什么?
答案 0 :(得分:3)
while (true) {
func1();
boost::this_thread::sleep(boost::posix_time::seconds(3));
func2();
boost::this_thread::sleep(boost::posix_time::seconds(3));
}
想到最简单的事情