您当前的位置: 首页 >  Java

java持续实践

暂无认证

  • 1浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java 实现多线程的两种方式

java持续实践 发布时间:2020-08-15 20:39:37 ,浏览量:1

文章目录
      • oracle官方文档创建线程的方式
      • 代码示例
        • 实现Runnable接口方式创建线程
        • 继承Thread类 方式创建线程
      • 两种实现多线程方式的对比
      • 两种实现多线程方式的本质

oracle官方文档创建线程的方式

根据oracle的官方文档如下, 创建线程的方式只有两种.

  • 实现Runnable接口
  • 继承Thread类

代码示例 实现Runnable接口方式创建线程
public class RunnableStyle   implements Runnable {

    public static void main(String[] args) {
        Thread thread = new Thread(new RunnableStyle());
        thread.start();
        System.out.println(Thread.currentThread().getName()+ "  main线程打印");
    }

    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName()+ "   实现Runnable接口创建线程");
    }
}

控制台打印如下

继承Thread类 方式创建线程
package com.thread.createthread;

/**
 * 类名称:ThreadStyle
 * 类描述:TODO
 *
 * @author: https://javaweixin6.blog.csdn.net/
 * 创建时间:2020/8/15 20:05
 * Version 1.0
 */
public class ThreadStyle extends Thread {

    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName()+ "   继承thread类 创建线程");
    }

    public static void main(String[] args) {
        new ThreadStyle().start();
        System.out.println(Thread.currentThread().getName()+ "  main线程打印");
    }

}

控制台打印如下

两种实现多线程方式的对比
  1. 从解除耦合的角度, 实现Runnable接口方式创建线程更好
  2. 如果用继承Thread类 方式创建线程 , 每次想要新创建一个任务, 只能新建立一个线程, 而新创建一个线程的损耗是比较大的. 而用Runnable , 可以使用线程池的方式来创建线程, 减少了线程创建和销毁的损耗. 节约了资源
  3. 由于Java是支持多实现, 而只支持单一继承的, 因此使用实现Runnable接口的方式也更好 .
两种实现多线程方式的本质
  • 实现Runnable接口方式 最终是调用target.run(); 而target 就是Runnable 接口 使用实现Runnable 接口 创建线程的方式,是会在构造方法的时候传入, 在后续的过程中被初始化. 如下图的Thread源码所示
  • 继承Thread类 方式是整个run()被重写 方法二是直接子类重写了父类的方法, 一旦子类重写了父类的方法, 那么父类的run方法就会被抛弃掉.
关注
打赏
1658054974
查看更多评论
立即登录/注册

微信扫码登录

0.0385s