0

可能性の重複:
Why should I use a thread vs using a process?長時間実行されるタスク、別のスレッドまたは別のプロセスで実行する必要がありますか?

私はいくつかの長時間実行タスクを持って、彼らは頻繁にCPUとメモリを消費します。 別のスレッドや別のプロセスでそれらを実行する必要がありますか? 各オプションのメリットは何ですか?

+2

「長時間走っている」とは何を意味していますか... 10秒、20分、5日間ですか? – Kiril

+0

@リリク数分。 – CuiPengFei

答えて

1

これは、実行しようとしている操作によって異なります。

Why should I use a thread vs. using a process?に加えて、そのスレッドが含まれているプロセスのメモリを共有していることを追加したいと思います。一方、プロセスはメモリを共有しません。各プロセスはスタック上に独自のメモリ空間を持っています。

同じデータで作業する予定がある場合は、スレッドを使用することをお勧めします。各スレッドがデータのチャンクで動作するようにする。

操作が完全に無関係な場合は、プロセスを使用します。私はこれがちょっと曖昧だと知っています。データを共有せず、操作をシリアル化しない場合は、プロセスを使用できます。

通常、1つのアプリケーション(プロセス)が複数のスレッドを生成します。複数のアプリケーションがある場合、各アプリケーションはプロセスであり、独自のアドレス空間を持ちます。

関連する問題