Javaのthreadのサンプル

Webエンジニア、ソーシャルメディア研究をしている雄大です。

2012年ということで、Javaの基礎の基礎から、お勉強しています。

さて、threadを使った処理を書いて見ました。

class Cars extends Thread{
    private String name;
    public Cars(String nm){
        name = nm;
    }
    public void run(){
        for(int i=0; i < 10; i++){
            System.out.println(name + "の処理をしています。");
        }
    }
}
public class Samplethread {
    public static void main(String[] args) {
        Cars cars = new Cars("1号車");
        cars.start();
        for(int i = 0; i < 10; i++){
            System.out.println("main");
        }
    }

}

簡単なソースを説明をすると、startメソッドは、CarsクラスがThreadクラスから継承したメソッドで、

このメソッドが呼び出されると、新しいスレッドが起動して、その最初の処理としてrun()メソッドの処理が行われます。

さて、実行結果は下記になりました。

main
main
main
main
main
main
main
main
main
main
1号車の処理をしています。
1号車の処理をしています。
1号車の処理をしています。
1号車の処理をしています。
1号車の処理をしています。
1号車の処理をしています。
1号車の処理をしています。
1号車の処理をしています。
1号車の処理をしています。
1号車の処理をしています。

新しいスレッドを起動している間にmainの処理が終わっています。。。これだと、本当に処理の流れが2つになっているのかわからない。

ということで、for文のところを1000回ループに変更して、再度実行していました。さすがに、2000行になるので、実行結果は書きませんが、

main
1号車の処理をしています。
main

と、並列に動いていることがわかりました。

コメント

タイトルとURLをコピーしました