2017-09-07 7 views
0

プロセスからスレッドを開始し、スレッドを切り離してプロセスを終了したい。しかし、スレッドはバックグラウンドで継続的に実行されます。 C++ 11でこれを達成できますか?C++でのスレッドの分離11

私はこの のstd ::スレッド(& thread_func、PARAM1、PARAM2).detachのように私のスレッド()切り離されています。

しかし、プロセスが終了すると終了します。

+0

あなたは、プロセスが終了した後にスレッドを実行しますか...? –

+0

@VittorioRomeo、はい、プロセスが終了した後でも、スレッドをバックグラウンドで実行します。 –

+1

@KishorBhandari:おそらく、スレッドではなくプロセスが必要です –

答えて

2

バックグラウンドでの実行と同じではありません。スレッドを切り離した場合は、OSに「終了した後に手動でスレッドに参加したくないので、それを世話してください」と伝えます。しかし、メインプロセスが終了するとOSは通常、すべての子スレッド/プロセスを強制終了します。

だからあなたはデアモンを実行することです。しかし、プロセスをデーモンにする(スレッドをデーモン化できないことに注意してください)、OSに依存します。私は、Windowsや他のOS上でそれを行う方法がわからない

http://man7.org/linux/man-pages/man3/daemon.3.html

:Linux上であなたはdaemon関数を呼び出します。また、あなたはこれを読むことをお勧めします:

Creating a daemon in Linux