20. スレッド

同時に複数のプログラムを実行させる方法について説明します。

(1) 今までのプログラム

 今までいくつか作ってきたプログラムは2とおりありました。まずはじめにアプリケーションプログラムを作ってきました。  これはmain( )メソッドを実行していくものでした。そしてもう1つはアプレットプログラムで、こちらは特定のタイミングでライフサイクルメソッド ( init,start,stop,destroy )が実行されました。

 どちらのプログラムも実行する場合、順番に1つずつ処理が行われていました。この処理を行っているものがスレッドと呼ばれるものです。

 Java のプログラムでは普通1つのスレッドを使って実行します。今まではこの1つのスレッドだけを使ってプログラムを作ってきたので、同時に2つの処理が動くようなプログラムは作れませんでした。

 Javaではマルチスレッドという機能を言語仕様のレベルでサポートしています。つまり、比較的簡単に複数の処理が同時にされるようなプログラムを書くことができるということです。


(2) マルチスレッド

 マルチスレッドの利点として、次の例を考えてみます。

 いま、ワープロのアプリケーションを使っています。文章ができあがったので印刷をしようと思います。もし、1つのスレッドしか使えない場合は、印刷をしている間は他の処理が行えないので、印刷完了までワープロを使って他の文章の編集をすることができません。



 マルチスレッドの場合、いまワープロを使っていますが、印刷用にもう1つスレッドを用意してやれば、印刷処理はこのスレッドを使って処理を行うので、印刷をしながら他の文章の編集ができます。
 Java ではマルチスレッドの機能を Thread クラス、または Runnable インタフェースで提供します。次からこの2つの使い方を見ていきましょう。

前の章(19.Readerクラス)   次の章(21.Threadクラス)