Process vs Thread
🔥 Process
👉 定義#テイギ#
動的概念は、実行するプログラム
👉 割り当てられたシステムリソースの例
👉 特長
各プロセスは独立したアドレス空間で実行され、1つのプロセスは他のプロセスの変数またはデータ構造にアクセスできません.
EX)pipe、socketなどの通信方法を使用
🔥 Thread
👉🏻 定義#テイギ#
👉🏻 特長
同じプロセス内の複数のThreadは同じHeap空間を共有する.プロセスは、他のプロセスのメモリに直接アクセスできません.
各Threadには独立した登録とスタックがありますが、Heapメモリは互いに読み取りと書き込みができます.
1つのThreadがプロセスリソースを変更すると、変更結果がすぐに他の隣接するThreadと共有されます.
👉🏻 Java Thread
Threadに関する多くの情報は、JVMによって管理され、例えば
開発者はJava Threadとして使用するThreadコードを作成し、JVMにThreadコードの動的実行を要求します.
🔥 Multi Process vs Multi Thread
🐶 Multi Process
👉🏻 定義#テイギ#
👉🏻 長所
👉🏻 短所
ここはよくわかりません.
注意:https://nesoy.github.io/articles/2018-11/Context-Switching
- Context Switching에서의 오버헤드
- Context Switching 과정에서 캐쉬 메모리 초기화 등 무거운 작업이 진행되고 많은
시간이 소모되는 등의 오버헤드가 발생
- Process는 각각의 독립된 메모리 영역을 할당받았기 때문에 Process 사이에서
공유하는 메모리가 없어, Context Switching가 발생하면 캐쉬에 있는 모든 데이터를
모두 리셋하고 다시 캐쉬 정보를 불러와야 함
単一スレッド:コンテキスト切替:タスク1コンテキスト切替-タスク2コンテキスト切替-タスク1コンテキスト切替-タスク3...
コンテキスト切り替えの期間:(理由)
マルチスレッド:
コンテキスト切替:タスク1コンテキスト切替-タスク2コンテキスト切替-タスク1コンテキスト切替-タスク3...
コンテキストの切り替え時間が短い—コア上のコード、データ、heapを共有し、挿入する必要がない
🐶 Multi Thread
👉🏻 定義#テイギ#
多くのオペレーティングシステム(
👉🏻 長所
🔥 マルチプロセスではなくマルチスレッドを使用する理由🔥
👉🏻 複数のプログラムを使用するのではなく、1つのプログラムで複数のタスクを解決します.
👉🏻 生産性の向上
👉🏻 処理コストの削減と応答時間の短縮
🔥 に注意
👉🏻 どうきもんだい
Thread間のリソース共有ではグローバル変数(データセグメント)が使用され、一緒に使用すると競合する可能性があります
出典:https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html HeeJeong Kwon
Reference
この問題について(Process vs Thread), 我々は、より多くの情報をここで見つけました https://velog.io/@leephoter/Process-vs-Threadテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol