多线程之实现Runnable接口:

1.创建一个Runnable接口的实现类
2.在实现类中重写Runnable接口的run方法
3.创建一个Runnable接口实现类的对象
4.创建Thread类对象,构造方法中传参为:Runnable接口实现类的对象
5.调用Thread类中的start方法,启动多线程

打印结果(并发):

实现Runnable接口创建多线程与继承Thread类相比优点是:

1.避免了继承Thread类的单继承的局限性。
【类只能单继承,类继承了Thread类就不能继承其他的类
而实现了Runnable接口,还可以继承其他的类,实现其他的接口

2.实现Runnable接口降低了线程对象和线程任务的耦合性,增强了程序的可扩展性。
【实现Runnable接口的方式,把设置线程任务和开启新线程进行了分离(实现解耦)
实现类中,重写了run方法来设置线程任务
创建Thread类对象,调用start方法来开启新线程
创建Thread类对象,构造方法中传递Runnable接口的实现类对象,可以传递不同的实现类(可扩展性)

3.实现Runnable接口将线程单独进行对象的封装,更符合面向对象思想。

转载于:https://www.cnblogs.com/cdlyy/p/11564299.html

多线程之实现Runnable接口及其优点相关推荐

  1. 简单易懂的多线程(通过实现Runnable接口实现多线程)

    通过实现Runnable接口实现多线程 在开发中,我们应用更多的是通过 Runnable 接口实现多线程.在实现 Runnable 接口的同时还可以继承某个类.所以实现Runnable 接口的方式要通 ...

  2. 【Java多线程】实现Runnable接口方式 / 继承Thread类方式;使用synchronized锁实现线程安全;线程安全的懒汉式单例模式;死锁问题示例

    Thread 的生命周期 一.实现Runnable接口方式 1.在 run 方法中使用 synchronized 块 /*** 例子:创建三个窗口卖票,总票数为100张.使用实现Runnable接口的 ...

  3. main run方法没用_多线程:解决Runnable接口无start()方法的问题

    为什么需要定一个类去实现Runnable接口呢?继承Thread类和实现Runnable接口有啥区别呢? 实现Runnable接口,避免了继承Thread类的单继承局限性.覆盖Runnable接口中的 ...

  4. java多线程(一)-Thread类和Runnable接口

    public class Thread extends Object implements Runnable Thread通过实现Runnable实现多态关系. Java中实现多线程,最基本2种方式: ...

  5. JavaSE基础二十:Java 多线程(线程基础知识、Java 多线程、Java 实现多线程(继承 Thread 类、实现 Runnable 接口、实现 Callable 接口))

    本章目录 1.基础知识准备 2.Java 多线程概述 3.Java 实现多线程 3.1.继承 Thread 类 如何开启新线程 Thread 类常用方法 多线程中的同步 Thread 类同步方法 多线 ...

  6. Java多线程的实现方式-Thread 类,Runnable 接口

    在 Java 的 JDK 开发包中,已经自带了对多线程技术的支持,可以方便地进行多线程编程.实现多线程编程的方式主要有两种:一种是继承 Thread 类,另一种是实现 Runnable 接口.下面详细 ...

  7. Java实现Runnable接口创建多线程

    Java实现Runnable接口创建多线程 通过继承Thread类,实现多线程,但是,这种方式有一定的局限性,因为,Java中只支持单继承,一个类一旦继承了某个父类,就无法再继承Thread类 比如, ...

  8. 多线程——实现Runnable接口实现一个多线程

    实现Runnable接口实现一个多线程 Runnable接口源码: package java.lang; //Runnable接口源码只有一个run方法 public interface Runnab ...

  9. Java多线程(2)--Thread类继承和Runnable接口创建线程

    Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread类来体现. Thread类的特性 每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常把run() ...

最新文章

  1. 前端token刷新并发处理
  2. vim 使用技巧 转载
  3. python setup.py install 出错_python setup.py install 失败
  4. java 文本文件 append_java 将字符串下载为文本文件
  5. 在减少对内地房地产投资的同时,加快了在内地零售业的布局;并积极推动“走出去”战略,在全球52个国家投资多种业务。...
  6. MLE(最大似然估计)和EM算法
  7. 117. Populating Next Right Pointers in Each Node II 计算右边的附属节点
  8. 重新制作Docker镜像
  9. 决策树归纳一般框架(ID3,C4.5,CART)
  10. 编译OpenJDK8:CoreLibraries.gmk:37/e_acos.obj/BuildJdk.gmk:70/Main.gmk:116/错误
  11. android录屏gif,gif录屏软件下载-gif录屏 安卓版v1.0-PC6安卓网
  12. html添加鼠标右键菜单,Fabric.js - 添加鼠标右键点击事件响应(附:右键菜单)...
  13. LZY的CQU水下机器人视觉学习笔记(一)
  14. 透声投影幕布透声与画面效果可以媲美吗?
  15. 用双重for循环打印正三角形和倒三角形的思路
  16. c++ nvcc编译CUDA程序入门示例
  17. Android四大组件生命周期
  18. mac打不开txt文件,出现“文本编码“中文 (GB 18030)”不适用。”的解决办法
  19. 被Facebook开除的中国工程师:我不后悔那天的决定
  20. echarts最新版做中国地图(详细版+避雷版)

热门文章

  1. Java Maximum Subarray debug
  2. How is a Batch request handled in the backend
  3. Kubernetes pod状态出现ImagePullBackOff的原因
  4. 一个由于Pricing RFC引起的UI超时问题
  5. Jerry的ABAP原创技术文章合集
  6. es查询index生成时间_Elasticsearch开始的第一步索引index
  7. python工作不好找吗_如何更好的找到 Python 工作?
  8. mysql 递归查找父节点_MYSQL递归查询,根据子类ID查询所有父类(最全)
  9. usb连接不上 艾德克斯电源_艾德克斯双范围可编程直流电源IT6800A/B系列
  10. php mysql_connect 不支持_php mysql_connect不支持的解决方法