Java 实现多线程的两种方式
程序员文章站
2022-04-26 14:45:54
文章目录oracle官方文档创建线程的方式代码示例实现Runnable接口方式创建线程继承Thread类 方式创建线程两种实现多线程方式的对比两种实现多线程方式的本质oracle官方文档创建线程的方式根据oracle的官方文档如下, 创建线程的方式只有两种.实现Runnable接口继承Thread类代码示例实现Runnable接口方式创建线程public class RunnableStyle implements Runnable { public static voi...
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线程打印"); } }
控制台打印如下
两种实现多线程方式的对比
- 从解除耦合的角度, 实现Runnable接口方式创建线程更好
- 如果用继承Thread类 方式创建线程 , 每次想要新创建一个任务, 只能新建立一个线程, 而新创建一个线程的损耗是比较大的. 而用Runnable , 可以使用线程池的方式来创建线程, 减少了线程创建和销毁的损耗. 节约了资源
- 由于Java是支持多实现, 而只支持单一继承的, 因此使用实现Runnable接口的方式也更好 .
两种实现多线程方式的本质
-
实现Runnable接口方式 最终是调用target.run();
而target 就是Runnable 接口
使用实现Runnable 接口 创建线程的方式,是会在构造方法的时候传入, 在后续的过程中被初始化. 如下图的Thread源码所示 -
继承Thread类 方式是整个run()被重写
方法二是直接子类重写了父类的方法, 一旦子类重写了父类的方法, 那么父类的run方法就会被抛弃掉.
本文地址:https://blog.csdn.net/qq_33229669/article/details/108027438
上一篇: 猫眼电影已购买的电影票怎么退票?
下一篇: 详细解说JVM底层工作原理