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

    lamda方式:

    new Thread(() -> {
      for(int a=0; a>5; a++){
        System.out.println(Thread.currentThread().getName() + ", a=" + a);
        }}, "thread 1").start();

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

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

  • 相关阅读:
    兼容所有浏览器的CSS3圆角效果
    浏览器兼容 IE6、IE7、IE8、Firefox、Opera CSS hack区分
    分享30个优秀的网站导航设计案例
    解析如何改善和优化 Web 服务器性能
    分享40款效果非常漂亮的 HTML5 & CSS3 网站模板,模板免费下载
    分享20个非常有创意的蓝色风格网页作品触发你的设计灵感
    分享20个效果非常绚丽的 CSS3 特性应用演示
    推荐12个优秀的 HTML5 网站设计案例欣赏
    网站设计风格及色彩搭配技巧
    舞动你的文字,巧用CSS中marquee属性
  • 原文地址:https://www.cnblogs.com/yuki67/p/9173430.html
Copyright © 2020-2023  润新知