创建线程的一般方式和匿名内部类方式对比——继承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

猜你喜欢

转载自www.cnblogs.com/yuki67/p/9173430.html