Japanese / English
threadの作成(継承)
スレッドを作成するにはjava.lang.Threadクラスを継承する必要があります。
以下に、スレッドクラスを継承したスレッド(MyThread)を作成します。runメソッドをオーバーライドしています。

public class MyThread extends Thread{
	public void run(){
		for (int i=0;i<10;i++){
			System.out.println("aa");
		}
	}
}
そして、このMyThreadクラスをインスタンス化して start() メソッドを呼び出すことにより run() メソッドが実行されます。
以下を見てください。

public class TEST {
    public static void main(String[] args){
        MyThread thread = new MyThread();
        thread.start(); // スレッドの実行
    }
}
この実行結果は以下のようになります。

aa
aa
aa
aa
aa
aa
aa
aa
aa
これはthread.start()を実行した段階で、MyThreadで定義したrun()メソッドが実行されるためです。
MyThreadクラスでは、run()メソッドをオーバーライドしています。
これでthreadの作成ができたわけですが、これではわかりにくいので以下にもう一つ例をあげます。

public class TEST {
    public static void main(String[] args){
        MyThread thread1 = new MyThread();
        MyThread thread2 = new MyThread();
        thread1.start();
        thread2.start();
        System.out.println("test");
    }
}
この実行結果は、以下のようになります。
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
test
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
普通、thread1のrun()メソッドが実行され、次にthread2のrun()メソッドが実行され、最後にtestと出力されそうな気がします。
ところが実行結果を見ると、thread1のrun()メソッドが実行され、testと表示され、最後にthread2のrun()メソッドが実行されています。
これはスレッドが独立して動作するため、各スレッド間での同期がとれていないためこのような現象が起こります。

このように独立して動作するプログラムが複数存在するプログラムをマルチスレッドと言ったりします。

Back to top

Information
SEO対策 大阪  税理士 相談  税理士 守口市  税理士 大阪市  税理士 枚方市  自動車ガラス 神戸  シール印刷 神戸  ブリリアントアパートメント  株式会社CONFRAGE  英会話 個人レッスン 京都市右京区  京都市右京区西京区でマンツーマン英会話 
このページはCONFRAGEの著作物です。このページを複製・転載することを禁じます。CopyRight(C)2003-2016 CONFRAGE All rights reserved.