1. ホーム
  2. multithreading

[解決済み】スレッド間で共有されるリソースは何ですか?

2022-03-28 05:26:36

質問

最近、面接でプロセスとスレッドの違いを聞かれた。本当に、答えが分かりませんでした。少し考えて、とても奇妙な答えをしました。

スレッドは同じメモリを共有し、プロセスは共有しない。これを答えた後、面接官は邪悪な笑みを浮かべながら、次のような質問を投げかけてきた。

Q. 番組が分割されるセグメントをご存知ですか?

私の答え うん(簡単だと思った) スタック、データ、コード、ヒープ

Q. では、どのセグメントでスレッドを共有するのか、教えてください。

これには答えられず、結局全部ということになりました。

どなたか、プロセスとスレッドの違いについて、正解と印象的な答えを提示していただけませんか?

どのように解決するのですか?

しかし、スレッドはすべてのセグメントを共有します。 ただし スタックです。スレッドは独立したコールスタックを持っていますが、他のスレッドのスタックにあるメモリはまだアクセス可能で、理論的には他のスレッドのローカルスタックフレームにあるメモリへのポインタを保持することができます(ただし、そのメモリを置くのにもっと良い場所を見つける必要があるかもしれませんね!)。