創建線程的一般方式和匿名內部類方式對比——繼承thread類,重寫run()方法


第一種:繼承thread類,重寫run()方法

一般方式:
Demo01.java
/**
 * 創建線程的第一種方式:繼承thread類,重寫run()方法
 *
 * @author :liuqi
 * @date :2018-06-12 15:12.
 */
public class Demo01 {
    public static void main(String[] args) {
        Rabit r = new Rabit();
        Tortoise t = new Tortoise();
        // 調用start方法啟動線程,不要調用run方法由內部自己調用
        r.start();
        t.start();
        for (int i = 0; i < 5; i++) {
            System.out.println("main --> " + i);
        }
    }
}
Rabit.java
/**
 * 兔子線程
 *
 * @author :liuqi
 * @date :2018-06-12 15:14.
 */
public class Rabit extends Thread {
    @Override
    public void run() {
        for (int i = 0; i < 5; i++) {
            System.out.println("rabit run " + i);
        }
    }
}
Tortoise.java
/**
 * 烏龜線程
 *
 * @author :liuqi
 * @date :2018-06-12 15:17.
 */
public class Tortoise extends Thread {
    @Override
    public void run(){
        for (int i = 0; i < 5; i++) {
            System.out.println("Tortoise run " + i);
        }
    }
}

運行結果:

main --> 0
main --> 1
Tortoise run 0
Tortoise run 1
Tortoise run 2
Tortoise run 3
Tortoise run 4
main --> 2
rabit run 0
main --> 3
rabit run 1
rabit run 2
main --> 4
rabit run 3
rabit run 4

匿名內部類方式:

ThreadDemo.java
/**
 * 使用匿名內部類的方式創建線程
 *
 * @author :liuqi
 * @date :2018-06-12 15:02.
 */
public class ThreadDemo {
    // 繼承thread類實現多線程
    public static void main(String[] args) {
        new Thread() {
            @Override
            public void run() {
                for (int x = 0; x < 5; x++) {
                    /*System.out.println(Thread.currentThread().getName() + "--"
                            + x);*/
                    System.out.println("rabit run " + "--"
                            + x);
                }
            }
        }.start();
        ;
        new Thread() {
            @Override
            public void run() {
                for (int x = 0; x < 5; x++) {
                    /*System.out.println(Thread.currentThread().getName() + "--"
                            + x);*/
                    System.out.println("tortoise run " + "--"
                            + x);
                }
            }
        }.start();
        ;
    }
}

運行結果:

rabit run --0
rabit run --1
rabit run --2
rabit run --3
rabit run --4
tortoise run --0
tortoise run --1
tortoise run --2
tortoise run --3
tortoise run --4

參考:https://www.cnblogs.com/fuck1/p/5373700.html

代碼地址:https://github.com/yuki9467/TST-javademo/tree/master/src/main/thread


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM