众所周知,Thread是继承了Runnable接口并重写run方法实现了线程。那么如果在匿名内部类中如何使用线程,并开启线程呢?

public class Test {public static void main(String[] args) {//Thread实现的匿名内部类new Thread(){@Overridepublic void run() {System.out.println("aaa");}}.start();//Runnable实习匿名内部类Runnable runnable = new Runnable(){@Overridepublic void run() {System.out.println("bbb");}};new Thread(runnable).start();}
}

Thread实现代码分析:

  new Thread类,重写run方法,相当于得到Thread子类对象,并重写Thread中的run方法,进而.start开启线程。

Runnable实现代码分析:

  new Runnable接口,重写run方法,相当于得到Runnable子类,run 方法相当于子类重写Runnable接口中的run方法,返回一个Runnable引用。实则为父类引用指向子类对象。

  而开启时,需要使用Thread类中Thread(Runnable target) 构造方法,得到Thread对象后,再.start开启线程。

转载于:https://www.cnblogs.com/pecool/p/9536431.html

线程--匿名内部类实现多线程的2种方式相关推荐

  1. 对Java多线程编程的初步了解,实现多线程的三种方式以及多线程并发安全的线程同步机制

    什么叫进程?什么叫线程? 进程相当于一个应用程序,线程就是进程中的一个应用场景或者说是一个执行单元,一个进程可以启动多个线程,每个线程执行不同的任务,一个线程不能单独存在,他必须是进程的一部分,当进程 ...

  2. 实现多线程的几种方式

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/king_kgh/article/details/78213576 多线程的形式上实现方式主要有两种, ...

  3. Java实现多线程有几种方式(满分回答)

    目录 JDK8 创建的线程的两种方式 orcle文档解释 方式一:继承Thread类 方式二:实现Runnable接口 同时用两种的情况 其他间接创建方式 Callable接口 线程池 JDK8 创建 ...

  4. java多线程w3c_Java创建多线程的三种方式

    前言 这篇文章主要讲述线程的概念.组成.Java创建多线程的三种方式以及线程的类型. 线程概念 线程和进程的区别 **进程:**正在运行的程序,例如:你打开 的qq音乐.exe程序,其由PCB(进程控 ...

  5. 实现java多线程的3种方式,99%人没用过第3种

    实现多线程的3种方式 1.继承Thread类 看jdk源码可以发现,Thread类其实是实现了Runnable接口的一个实例,继承Thread类后需要重写run方法并通过start方法启动线程. 继承 ...

  6. 多线程基础-实现多线程的两种方式(二)

    实现多线程的两种方式: 1.实现Runnable public interface Runnable {public abstract void run(); }// RunnableTest.jav ...

  7. 3种java实现多线程_实现java多线程的3种方式,99%人没用过第3种

    实现多线程的3种方式 1.继承Thread类 看jdk源码可以发现,Thread类其实是实现了Runnable接口的一个实例,继承Thread类后需要重写run方法并通过start方法启动线程. 继承 ...

  8. java中实现多线程的三种方式

    java中实现多线程的三种方式 1.实现多线程的方法: 在java中实现多线程的两途径:继承Thread类,实现Runable接口(Callable) 2.继承Thread类实现多线程: ​ 继承类T ...

  9. 实现多线程的3种方式

    1)  继承Thread类,重写run()方法. Thread类本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例.并且,启动线程的唯一方法就是通过Thread类的start()方法 ...

  10. Java 实现多线程的四种方式 超详细

    Java 实现多线程的四种方式 文章目录 Java 实现多线程的四种方式 一.继承 Thread 类 二.实现 Runnable 接口 三.实现 Callable 接口 四.线程池 1,Executo ...

最新文章

  1. 10 分钟入门 AST 代码优化与修改
  2. zigbee协议栈学习(二)
  3. Linux web服务安装apache 思路 (源码编译,自己定义服务)
  4. Python OpenCV学习笔记之:使用Grabcut算法进行图像背景和前景分割
  5. Transformer-XL解读(论文 + PyTorch源码)
  6. Dubbo 源码分析 - SPI 机制
  7. springMVC_数据的处理过程
  8. 【Java】浅谈Java的I/O体系
  9. 1129 Recommendation System
  10. 英国央行:稳定币讨论文件将讨论与央行数字货币概念相关可能出现的问题
  11. 你能熟练使用Dictionary字典和List列表吗?
  12. 20190813 On Java8 第一章 对象的概念
  13. 那些年,我们一起玩过的响应式布局
  14. Springboot2.x 集成 jedis和spring-boot-starter-data-redis的性能测试比较(Jedis完胜:附带源码)
  15. 高数 吉米多维奇 785
  16. 内网渗透技术之超越LLMNR/NBNS欺骗的ADIDNS欺骗攻击
  17. linux源文件安装,Linux下的源文件安装
  18. 快乐去学习「快乐机器学习」
  19. learning的反义词英文_英语同义词反义词
  20. 全国竞赛算不算全国计算机二级,竞赛证书的等级如何区分

热门文章

  1. Atitit.swt 线程调用ui控件的方法
  2. Atitit.故障排除系列---NoClassDefFoundError  NoClassDefFoundError ClassNotFoundException
  3. atitit.高级编程语言的特性 and 未来趋势与进化.doc
  4. paip.提升用户体验以及效率----编程语言趋势以及第四代语言4GL
  5. paip.chrome使用ACTIVX 的总结
  6. paip.换工作机后svn服务修复
  7. 解决SAXParseException: Premature end of file
  8. paip.操作DATATABLE增加列及内容
  9. 创投观察 | 市场白热化前,RPA公司要怎么构建核心壁垒?
  10. (转)资产管理和财富管理的区别