質問: スレッドとは? windowsでのスレッドとは具体的にどのようなものかを知りたいです。 また、ウィンドウ、アプリケーション、スレッドはどのような関係になっているのでしょうか?
回答: あなたがプログラム開発に関係のない人だとして、 説明をします。 (そういう人がスレッドなんて言葉をどこで知ったかという 疑問はありますが・・・) まず、アプリケーションというのは、プログラムの使い方の種類の 名前ですので、スレッドやウインドウには関係ありません。 自動車で、「エンジン、タイヤ、タクシーの関係」というのと変わらないです。 そちらの意図としては、おそらくプロセスを言いたかったのかと想像します。 プロセスというのはプログラムの実行の単位です。 例えば、エクセルのアイコンを2回クリックすると、2つのエクセルが起動しますが、 このとき、「2つのエクセルのプロセスが起動している」ということになります。 プログラムを実行させるには、必ずプロセスが起動するわけですが、 プロセスは、必ずしもウインドウを必要とはしません。 ウインドウは人間に情報を伝えるためのものであるため、情報を伝える必要のない プログラムでは必要ないからです。 タスクマネージャーを使ってみると、ウインドウのでていないプロセスが 数多くあるのを確認できるかと思います。 さて、osはプロセスを同時に複数実行できるというのは理解できますよね? 同じように、プロセスはスレッドを複数実行できます。 どういった場合につかうかというと、 例えば、将棋ゲームを想像してみてください。 対戦相手をコンピュータにします。コンピュータの番のとき、 コンピュータは次にどうするかを考えるという処理をしています。 その時に、「ウインドウをめくって又戻す」などをすると、ウインドウは真っ白になります。 これは、 ・ウインドウをめくったときに、ウインドウの描画は消去される ・再び戻したとき、ウインドウ内の再描画はアプリケーション(この場合は将棋ゲーム) が行わなければならない。 ・しかし、その時将棋ゲームは次の手を考える処理をしている ということが起こるためです。 (ここで使った「アプリケーション」はosに対しての意味です) これを、 ・「次の手の思考」用スレッド ・ウインドウ表示用スレッド とすることで、「ウインドウをめくって又戻す」としても、きちんと再描画されます。 これは、1例ですが、様々なときにスレッドは使われます。 ご理解いただければ幸いです。