2017-09-14 21 views
-1

-Interview質問プロセスに対するスレッドの短所は何ですか?

Iはthreadの欠点を頼まれました。そして、threadの代わりにprocessを使用するべきシナリオは何ですか?

が無効なメモリアクセスを除いて多く考えることができませんでした。

+0

[プロセスとスレッドの違いは何ですか?](https://stackoverflow.com/q/200469/62576) –

+0

@KenWhiteこの投稿にはスレッドの肯定的な点しか含まれていません。 – roottraveller

+0

スレッドには多くの利点があります。多くのプログラマがスレッドコードを正しく記述する方法を知らないことがあります。デッドロックと競合のバグは、診断と修正が非常に困難です。シングルスレッドプロセスの問題のほうがはるかに少なく、別のプロセスのスレッドが何かを破損しないようにメモリを分離します。この分離によって、プロセスが連携するのが難しくなりますが、何かをすると、診断や修正が非常に難しいバグが発生する傾向があります。 –

答えて

1

スレッドは、同じプロセスによって生成され、すべて同じメモリを共有します。プロセスはすべて、独自のメモリコンテキストで実行されます。

Linux(新しく生成された子プロセスは、通常、親プロセスのメモリコンテキストの特定の部分のコピーを受け取るため、ランタイム時にメモリがより高価になります。作成時にはCPU時間/ MMUが賢明です。また、CPUからプロセスを読み込んだり(プロセスやスレッドが何もしなくても、実際の作業でプロセスやスレッドを優先してキューにプッシュされた場合)、コンテクストの切り替え(オフ)プロセス。

一方、プロセスのメモリが兄弟プロセスのメモリから分離されているため、プロセスがより安全になる可能性があります。

関連する問題