C++ 运行 两个函数(线程)依次无限

C++ run two functions(threads) in turn infinitely

我想在 Linux 上创建一个守护进程,它基本上 运行 一个接一个地 运行ning 两个函数(两个都是空的)。我尝试了两种方法:

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;
}

这两种情况最终都会导致堆栈溢出。我希望函数依次 运行 的原因是因为我希望第一个填充数组,第二个处理其中的值然后清除它。实现这样的事情的最佳方式是什么?

while (true) {
    func1();
    boost::this_thread::sleep(boost::posix_time::seconds(3));
    func2();
    boost::this_thread::sleep(boost::posix_time::seconds(3));
}

会是想到的最简单的事情