尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Thread类与Runnable接口的关系

发布时间:2026/9/18 10:45:59

资讯中心
01
ARTICLE

Thread类与Runnable接口的关系

Thread类与Runnable接口的关系
Thread与Runnable的关系经过一系列的分析之后可以发现在多线程的实现过程之中已经有了两种方法Thread类、Runnable接口如果从代码本身的结构说使用Runnable是最方便的因为其可以避免单继承的局限同时也可以更好的进行功能的扩充。但是从结构上也需要来观察Thread与Runnable的联系。在JDK中查看Thread定义public class Thread exends Object implements Runnable{}发现现在Thread类也是Runnable接口的子类那么在之前继承Thread类的时候实际上还是复写的Runnable接口的run()方法多线程的设计之中使用了代理设计模式的结构用户自定义的线程主体只是负责项目核心功能的实现而所有的辅助实现全部交由Thread类来处理。多线程开发多线程开发的本质实质上是在于多个线程可以进行同一资源的抢占那么Thread主要描述的是线程而资源的描述是通过Runnable完成的范例利用卖票程序来实现多个线程的资源并发访问package cn.pjy.demo; /** * Thread与Runnable的关系 * 经过一系列的分析之后可以发现在多线程的实现过程之中已经有了两种方法 * Thread类、Runnable接口如果从代码本身的结构说使用Runnable是最方便的因为其可以避免单继承的局限同时也可以更好的进行功能的扩充。 * * 但是从结构上也需要来观察Thread与Runnable的联系。 * 在JDK中查看Thread定义 * * public class Thread exends Object implements Runnable{} * * 发现现在Thread类也是Runnable接口的子类那么在之前继承Thread类的时候实际上还是复写的Runnable接口的run()方法 * * 多线程的设计之中使用了代理设计模式的结构用户自定义的线程主体只是负责项目核心功能的实现而所有的辅助实现全部交由Thread类来处理。 * * 在进行thread启动多线程的时候调用的是start()方法而后找到的是run()方法。 * 但通过Thread类的构造方法传递了一个Runnable接口对象的时候那么该接口对下个将被Thread类中的target属性所保存。 * 在start()方法执行的时候会调用Thread类中的run()方法而这个run()方法区调用Runnable接口子类被覆写过的run()方法。 * * 多线程开发的本质实质上是在于多个线程可以进行同一资源的抢占那么Thread主要描述的是线程而资源的描述是通过Runnable完成的 * * * author PJY * */ class MyThread2 implements Runnable{ private int ticket 5; //剩余票数 /* * private String title; * * public MyThread2(String title) { this.title title; } */ Override public void run() { for(int x 0; x 100; x) { if(this.ticket 0) { System.out.println(卖票ticket this.ticket --); } } } } public class Runnable_Thread { public static void main(String[] args) { MyThread2 mt new MyThread2(); new Thread(mt).start(); //第一个线程启动 new Thread(mt).start(); //第二个线程启动 new Thread(mt).start(); //第三个线程启动 } }内存分析图
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。