JAVA プログラミング 入門

JAVAのプログラミングについて初歩から解説します。まずは、mainメソッド、変数、演算、if文、for文、while文、メソッド、配列など。続いて、メソッドを複数構成して、プログラムを作成(非オブジェクト指向プログラミング)、しばらく後になると思いますが、オブジェクト指向プログラミングを解説します。 クラスの構成、コンストラクター、継承、・・・、など、本格的OOP(Object Oriented Programming)を解説します。

Java: スレッド(プロセスの中の簡易プロセス)

スレッドには以下のようなものである。
1)スレッドとは一つのプロセスの中に作ることがで
きる簡易プロセス
2)スレッドはプロセスに所属する。
3)プロセスのメモリなどのリソースを共有する。動
作が軽い。軽量級のプロセスといわれる。
4)複数のスレッドを一つのプロセスに持つことがで
きる。
5)JVM(Java virtual machine)でスレッドを管理する。

スレッドは以上の性質を持っているため、上手くプログラムを構成すれば、効率のよいプログラムを作成できることが期待でされる。

スレッドの作成の仕方は二つある。

Ⅰ. Threadを拡張したクラス(スレッドクラス)を作る方法
1) Threadクラスを拡張したクラスを作る。
2) Threadにはrunメソッドがあるので、それをオーバーライドする。それが、スレッドの動作内容である。
3) スレッドクラスによりオブジェクトを作成し、start()メソッドでスレッドをスタートさせる。

次のプログラムはこの方法で作成したスレッドのプログラムである。mainで二つのスレッドを作成し、それらをスタートさせている。mainも一つのスレッドである。
Proo17_1.java

class Book extends Thread{
   private String title;
   public Book(String title){
      this.title = title;
   }
   public void run(){
      for(int i=0; i<3; i++){
         System.out.println(title + " is being read.");
      } 
   }
}
class Proo17_1{
   public static void main(String args[]){
      Book a = new Book("Book1");
      a.start();
      Book b = new Book("Book2");
      b.start();
      for(int i=0; i<3; i++){
         System.out.println("main() is running.");
      } 
   }
}
/*
main() is running.
main() is running.
main() is running.
Book1 is being read.
Book2 is being read.
Book1 is being read.
Book2 is being read.
Book1 is being read.
Book2 is being read.
*/

Ⅱ.Runnableインターフェースを使う方法
1) Runnableインターフェースを実装したクラスのオブジェクトを作成する。実装するとき、runメソッドを実装する。それが、スレッドの動作内容である。
2) そのオブジェクトをパラメータとして、Threadのオブジェクトを作る。それが、スレッドのオブジェクトである。
そのスレッドオブジェクトのstartメソッドを起動する。

次のプログラムはこの第二の方法で作成したスレッドのプログラムである。mainで二つのスレッドを作成し、それらをスタートさせている。mainも一つのスレッドである。
Proo17_2.java

class Book implements Runnable{
   private String title;
   public Book(String title){
      this.title = title;
   }
   public void run(){
      for(int i=0; i<3; i++){
         System.out.println(title + " is being read.");
      } 
   }
}
class Proo17_2{
   public static void main(String args[]){
		Thread a=new Thread(new Book("Book1"));
		a.start();
		Thread b=new Thread(new Book("Book2"));
		b.start();
      for(int i=0; i<3; i++){
         System.out.println("main() is running.");
      } 
   }
}
/*
main() is running.
main() is running.
main() is running.
Book2 is being read.
Book1 is being read.
Book2 is being read.
Book1 is being read.
Book2 is being read.
Book1 is being read.
*/

JAVA PROGRAMMING 入門 TOP へ