C ++一次运行2个进程

时间:2012-08-20 16:19:15

标签: c++

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

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

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

感谢您的所有帮助和建议。

1 个答案:

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