[ホーム] - [Windows 2000 FAQ 一覧] - [プロセスとスレッドの違いは何ですか。]



作成日:2001/08/05
更新日:2009/09/22
対象:Windows 2000/Windows Me/Windows 98/Windows 98 SE/Windows 95/Windows NT 4.0

プロセスとスレッドの違いは何ですか。




Windowsにおけるプロセスとスレッドの違いは、おおまかに言うと以下のようになります。

(1)プロセスは一つのプログラム。
(2)スレッドはプロセス内で並列動作する単位。

例えばMS-WORDで印刷をする場合を例に出します。MS-WORDはプロセスですが、印刷する処理やスレッドです。スレッドは並列処理を行うことができるので、文書を作成しながら同時に印刷することができるのです。

メモリ空間の視点から見ると、以下の違いがあります。

(1)プロセスはそのプロセス専用に割り当てられたメモリ空間で動作する。(スタックは固有)
(2)スレッドは共有のメモリ空間で動作する。(スタックは固有)

スレッド間は共有メモリで動作するので、スレッド間で変数等のメモリを共有することができます。便利ではあるのですが、一方正しく排他の処理を行わないと、プログラム全体として不整合が発生してしまいます。

その他の点として、プロセスは起動するのに(スレッドと比較して)かなりの負荷がかかります。例えばCGIなどはプロセスであるため、簡単なCGIでもシステムに負荷をかけることになります。その点で、ASP(Active Server Page)や Servlet は各クライアントからの処理をスレッドとして処理するため、システムへの負荷が比較的低くなります。







(ご注意) 本サイト内の内容を使用して発生したいかなる時間的損害、金銭的損害あるいはいかなる損害に対して、いかなる人物も一切の責任を負いません。あくまでも個人の判断で使用してください。 本ページは独自に調査をしたアンオフィシャル(非公式)な内容です。内容に誤りがある可能性や仕様変更により内容が不正確になる可能性があります。 本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。)


Copyright(c) TOOLJP.COM 1999-2024

[Windows 2000 FAQ 一覧に戻る]