この記事では、「プロセス」と「インスタンス」の違いを分かりやすく説明していきます。
「プロセス」とは?
「プロセス」とは、「コンピューター(PC)で、プログラムコードに記された命令を実行して情報処理すること」を意味しています。
「プロセス」をより簡単な事例で説明すると、「パソコンのタスクマネージャーに表示されている動作中の一つ一つのアプリケーション(WordやChrome、Photoshopなど)」になります。
「プロセス」は実質的に「タスク」の同義語のように使われがちですが、「タスク」は「まとまった単位の情報処理」を示す用語です。
「プロセス」の内部には「スレッド」と呼ばれる情報処理の単位があり、一つずつスレッドを処理するやり方を「シングルスレッド」といいます。
「一つのプロセス」において同時に複数の処理を行うやり方は「マルチスレッド」と呼ばれています。
「インスタンス」とは?
「インスタンス」とは、「オブジェクト指向言語の文脈において、クラスの定義に従って実際に作成したオブジェクト・実体(=実際にプログラムで動作する実体)」を意味しているIT用語です。
「インスタンス」を英語で表記すると「instance」となり、「事例・実例・事実」などの日本語で翻訳することができます。
「インスタンス」というIT用語には、「クラスによって概念的にどんなものかを定義した後に、実際につくったオブジェクト(=実際に作成して機能的に動かせるモノ)」といった意味のニュアンスが備わっているのです。
「クラス」は「プロパティー(属性)とメソッドによる概念的なものの定義」であり、「インスタンス」というのは「そのクラスを前提としてその定義を具現化したオブジェクト」を意味していることになります。
「プロセス」と「インスタンス」の違い
「プロセス」とは、「コンピューター科学において、プログラムのコード・OS・CPU・周辺機器などによって実現することができる情報処理全般」を意味しています。
「プロセス」に対して「インスタンス」というIT用語は、「主にオブジェクト指向言語の文脈において、クラスを単位として作成されたオブジェクトの実体(実際に動かして何らかの機能を発揮することができるもの)」を示している違いを指摘できます。
「プロセス」というのは「主にパソコンのプロセッサやメモリによって行われているデータ(情報)の処理・独立したアプリケーションの処理」といった意味合いで使われるIT用語です。
そのため、「プロセス」は「インスタンス」のように「オブジェクト指向言語との直接的・間接的な相関」がないという明らかな違いもあります。
「インスタンス」は、「クラスに基づいて実際に動作するように作ったもの=パソコン上で実際に処理できる状態になっているオブジェクト」を示唆している点が異なっています。
まとめ
「プロセス」と「インスタンス」の違いについて分かりやすく説明しましたが、いかがでしたか?
「プロセス」とは、「プログラムに指示された命令を実際に行う形で情報処理をすること、処理の過程のタスク」を意味しています。
「インスタンス」は、「クラスを基準にして生成されたオブジェクトの実体」の意味を持っている違いを挙げることができます。
「プロセス」と「インスタンス」の違いについて詳しく知りたいときは、この記事の内容をチェックしてみてください。