C++;一次运行2个进程 一次运行2个进程的C++问题。< /P> 我有一个客户端-服务器模型的C++代码。我的服务器将为来自客户端的每个连接分叉。这是一个还具有提醒模块的系统。这个提醒模块需要在从1000倒计时到0时发送一封电子邮件:当它达到0时,它将执行其代码

C++;一次运行2个进程 一次运行2个进程的C++问题。< /P> 我有一个客户端-服务器模型的C++代码。我的服务器将为来自客户端的每个连接分叉。这是一个还具有提醒模块的系统。这个提醒模块需要在从1000倒计时到0时发送一封电子邮件:当它达到0时,它将执行其代码,c++,C++,但是我的服务器已经在一个while(1)循环中运行。如何在不影响服务器侦听连接的情况下同时调用此提醒 感谢所有的帮助和建议。您正在寻找通常称为线程的内容。 下面是一个使用Boost.Thread的示例: #include <iostream> #include <boost/thread.hpp> #include <boost/date_time.hpp> bool worker_running = true; void workerFunc

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


感谢所有的帮助和建议。

您正在寻找通常称为线程的内容。 下面是一个使用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;  
}  
#包括
#包括
#包括
bool worker_running=真;
void workerFunc(){
当(工人_运行时){
boost::posix_time::秒工作时间(3);
//做点什么
boost::此线程::睡眠(工作时间);
}
}  
int main(int argc,char*argv[])
{  
//在while循环之前:
线程workerThread(workerFunc);
//在这里循环
worker_running=false;
workerThread.join();
返回0;
}  

我还建议您阅读boost文档^ ^@CountMurphy:Shoot,完全忘了添加链接。您不需要两个进程,您需要两个线程,了解进程和线程之间的区别,一个进程可以有多个线程,如果您可以不使用额外的线程,请不要使用更复杂的解决方案,需要进程间通信什么的