3

关于一次运行 2 个进程的 C++ 问题。

我有一个客户端-服务器模型类型的 C++ 代码。我的服务器将为来自客户端的每个连接分叉。这是一个也有提醒模块的系统。这个提醒模块需要在从 1000 倒计时到 0 时发送一封电子邮件:当它到达 0 时,它将执行其代码。

但是我的服务器已经在 while(1) 循环中运行。如何在不影响服务器监听连接的情况下一起调用这个提醒?

感谢所有帮助和建议。

4

1 回答 1

3

您正在寻找通常称为线程的内容。下面是一个使用 Boost.Thread 的例子:

#include <iostream>  
#include <boost/thread.hpp>  
#include <boost/date_time.hpp>  

bool worker_running = true;

void workerFunc() {
    while (worker_running) {
        boost::posix_time::seconds workTime(3);  

        // do something 

        boost::this_thread::sleep(workTime);  
    }
}  

int main(int argc, char* argv[])  
{  
    //before your while loop: 

    boost::thread workerThread(workerFunc);  

    //while loop here

    worker_running = false;           
    workerThread.join(); 

    return 0;  
}  
于 2012-08-20T16:23:16.960 回答