最近、私はインタビューでプロセスとスレッドの違いは何かと質問されました。実のところ、私は答えを知りませんでした。少し考えて、とても奇妙な答えをしました。
スレッドは同じメモリを共有しますが、プロセスは共有しません。これに答えた後、面接官は私に邪悪な笑みを浮かべ、次のような質問を投げかけました。
Q.番組がどのセグメントに分かれているかご存知ですか?
私の答え:はい (簡単だと思った) スタック、データ、コード、ヒープ
Q.では、教えてください。スレッドはどのセグメントを共有しますか?
これには答えられず、結局全部言ってしまいました。
プロセスとスレッドの違いについて、正確で印象的な答えを提示できる人はいますか?
ベストアンサー1
ほぼ正しいですが、スレッドはスタック以外のすべてのセグメントを共有します。スレッドには独立したコール スタックがありますが、他のスレッド スタック内のメモリには引き続きアクセス可能であり、理論的には他のスレッドのローカル スタック フレーム内のメモリへのポインタを保持できます (ただし、そのメモリを配置するより適切な場所を見つける必要があります)。