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 に答える