Java随笔之Runnable和Thread的区别

Java中Runnable和Thread的区别 在我们开发的过程中常常会碰到多线程的问题,对于多线程的实现方式主要有两种:实现Runnable接口、继承Thread类。对于这两种多线程的实现方式也是有着一些差异。既然实现了多线程那必然离不开管理这些线程,当问题比简单时一个或者几个线程就OK了,也涉及不到效率问题。一旦线程数量多起来的时候,必然躲不过这些线程的创建与销毁,而往往这是很浪费时间的。这时就需要利用线程池来进行管理,既免去了我们创建线程... 阅读详情

其实Runnable和Threa两者之间并没有本质的区别,就是接口与类的关系。

1.Rnnable是一个接口,需要一个类去实现它即可使用。

        接口可以支持多继承。

public class MyRunable implements Runnable {
    @Override
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println("run :" + i);
        }
    }
}

在测试类中运行起来:

public class Test02 {
    public static void main(String[] args) {
        //创建MyRunnable类的对象
        MyRunable mr = new MyRunable();

        //创建Thread类的对象,把MyRunnable对象作为参数传入
        Thread t = new Thread(mr);

        //调用start()方法启动线程
        t.start();
    }
}

运行结果:

 2.Thread的使用方法是子类继承它,可以使用父类的方法。

public class MyThread extends Thread{
    public MyThread(String name) {
        super(name);
    }

    @Override
    public void run() {
        System.out.println("t.getName() :" + getName());

        for (int i = 0; i < 3; i++) {
            System.out.println("run:" + i);
        }
    }
}

        两者对比之下看得出来Thread的使用会更加简便,代码量没有Runnable多,直接继承就可以使用,而Runnable则还需要多new一个对象,再进行参数传递。

总结:

Thread和Runnable的实质是继承关系,没有可比性。

无论使用Runnable还是Thread,都会new Thread,然后执行run方法。

深入解析STM32官方库:.c/.h文件功能与应用场景 本文深入解析了STM32官方库中.c和.h文件的核心功能与应用场景。详细剖析了stm32f10x.h、启动文件、外设驱动文件等关键组件的作用,并通过LED闪烁实战演示了如何构建工程、配置文件和调用库函数。文章旨在帮助开发者理解官方库的架构,掌握高效使用技巧,从而降低STM32开发门槛,提升开发效率与代码质量。 阅读详情

相关推荐

Flow Matching实战:5步搞定图像生成模型优化(附PyTorch代码)

本文提供了一份基于Flow Matching框架优化图像生成模型的实战指南。通过五个关键步骤,详细讲解了从环境配置、核心概念梳理到构建向量场网络、设计损失函数、编写训练循环以及选择ODE求解器进行采样的完整流程,并附有可运行的PyTorch代码,帮助开发者快速掌握这一高效的生成式建模技术。

weixin_29065959的博客 319

Java多线程编程之Runnable、Thread简介

在Java多线程编程中,常会遇到Runnable,Thread,Handler,这些对象往往让人感到困惑,现简单梳理下Java多线程编程的要点以及它们使用的区别。 一、描述任务的方式,Runnable接口     并发编程将程序分为多个任务,通过使用多线程机制来执行每个独立任务(子任务)。下面写个简单的程序说明Runnable使用的特点。 LiftOff.java package com.

蔡兵的专栏 699

Agent 长期记忆三代演进:从 RAG 到 Memory Graph,mem0 / Zep / LangMem / Letta 深度横评

文章摘要 2026年,Agent长期记忆技术迎来关键突破,OpenAI、Anthropic等厂商通过扩大上下文窗口和推出记忆工具,推动长期记忆从工程补丁发展为独立技术层。本文通过分析三代记忆架构演进(RAG→结构化Fact→MemoryGraph)和四大方案(mem0/Zep/LangMem/Letta)的8维度横评,揭示以下核心观点: 长上下文≠长期记忆:128K上下文如同RAM,仍需硬盘式记忆层筛选和结构化存储,避免“Context Rot”导致的准确率下降。 三代架构演进: Gen1(RAG):向量检

LDZKKJ的博客 1400

通过Runnerable创建线程

/** 1.创建线程的方法,通过实现接口 */ public class MyThread implements Runnable{ //设置线程之间的共享的数据 private static int staticcount=1000; //线程中的实现接口必须实现的接口 public void run(){ System.out.println("new thread"); }

RollingInTheDeepc的博客 3117

【GAN实战】基于pytorch-CycleGAN与pix2pix的自定义数据集训练全攻略

本文详细解析了基于PyTorch的CycleGAN与pix2pix模型在自定义数据集上的完整训练流程。核心在于根据数据是否成对来正确选择模型:pix2pix适用于严格配对的“孪生”数据,而CycleGAN则擅长处理非配对的“散装”数据集。文章从数据准备、配置训练到测试应用,提供了全链路实战指南与关键参数调优心得,帮助开发者高效实现图像到图像的风格转换。

x2y3z4a5b的博客 704

从实验室到生产线:Qwen3-Omni后训练技术在实际业务中的落地挑战

本文探讨了Qwen3-Omni后训练技术在实际业务中的落地挑战,重点分析了多模态AI在工业应用中的关键问题与解决方案。通过金融风控、跨境电商等场景案例,揭示了通用模型与垂直需求的矛盾,并提供了知识蒸馏、语音合成优化等实战经验,助力企业实现技术到业务的转化。

weixin_29035147的博客 265

java多线程 初学回忆笔记

这是我在csdn上面发表的第一篇文章,也是当作自己学习的一个记录。 在b站大学初学多线程 以下内容全靠回忆和理解完成,如有不对或者遗漏的地方,敬请指正。 Thread 是一个父类,代表线程的模版,继承他的子类要需要改写run方法以让线程干活 子类对象必须要使用start方法去启动线程 线程 声明周期:就绪 运行 (阻塞) 死亡,其中线程被阻塞就会回到就绪状态 New多个thread的同一个子类对象可以实现多线程(这几个线程去同时执行thre...

Codemenon的博客 246

[kriging](一)网上下载的kriging克里金的C++程序的初步调试

笔者在网上下载了一份克里金的C++程序,水平有限,正在逐步地调试中。 初步 克里金法现在在许多软件都已经有集成了,据笔者所知: arcgis : 看过有的arcgis培训视频里面简略介绍了里面的插值方法,有克里金。 surfer :笔者用过这个,效果很好。 gocad :听说有 landmark &jason :研究生时候用的专业的石油物探软件,里面有克里金法,万恶的开始。 pykrig...

FOREST优快云 5609

线程的两种实现方式及其区别

线程的实现方式一:继承Thread 步骤: 1.继承Thread,创建Thread类的对象,封装一个独立的线程; 2.重写run方法,封装线程任务; 3.创建线程对象,启动线程; 继承Thread在实际开发中很少用。 线程的实现方式二:实现Runnable接口 步骤: 1.自定义实现类,实现Runnerable接口 2.重写run方法,封装线程任务 3.创建Thread类的对象,封装Runnable接口实现类,启动线程 public class ThreadDemo2 implements Runnable

Vicali的博客 1994

未来智能家居解决方案:AI应用架构师的前沿探索

当你加班到深夜回家时,门锁自动识别你的脚步声解锁,玄关灯渐亮成你最爱的暖光,空调早已调到25℃(你夏天的习惯温度),音箱播放着最近循环的爵士乐,茶几上的智能水壶烧好了温水——这不是科幻电影,而是未来智能家居的日常。如何让“冰冷的设备”变成“懂你的伙伴”。我们将深入探讨五大前沿技术(边缘AI、多模态融合、联邦学习、数字孪生、个性化推荐)的底层原理,用“家里的小管家”“邻居互相学习”等生活化比喻简化复杂概念,结合代码示例与架构图还原实现流程,并通过智能卧室、智能厨房等真实案例展示落地路径。

AI天才研究院 1410

社交媒体文章内容与评论抓取:Python 爬虫实战教程

通过本文的介绍,我们学习了如何使用 Python 编写爬虫,抓取社交媒体平台的文章内容和评论。我们详细介绍了如何使用requestsSelenium和Tweepy等工具,抓取微博和 Twitter 上的公开数据。同时,我们还讨论了如何处理反爬虫机制,避免账号或 IP 被封禁。抓取社交媒体数据是一个充满挑战和乐趣的过程,掌握这些技术后,你可以在大数据分析、情感分析和舆情监测等方面得到更深层次的应用。

2201_76125261的博客 1708

Runnable 和 Thread 有什么区别

线程状态:创建Thread对象后,可以直接调用start()方法启动线程,而使用Runnable需要先创建Thread对象,然后将Runnable对象传递给Thread对象,最后调用start()方法启动线程。如果需要对线程类进行自定义的扩展,例如重写Thread类的方法来改变线程的行为,那么继承Thread类就是一个不错的选择。继承性:Thread是一个类,因此如果继承Thread类,子类就不能再继承其他的类了,而实现Runnable接口可以继承其他类,这样可以避免Java中单继承带来的限制。

qq_30667039的博客 4390

【OpenCV】图像的像素直方图 图像特征点 cv::FAST cv::ORB ORB_SLAM2::ORB

文章目录图像直方图代码实现cv::FAST和cv::ORB 检测图像特征点cv::FAST和cv::ORB 检测图像特征点代码实现ORB_SLAM2::ORB和自己实现ORB图像特征点检测效果对比ORB_SLAM2::ORB和自己实现ORB图像特征点检测效果对比代码实现 图像直方图代码实现 图像是由不同数值(颜色)的像素构成的,像素值在图像中的分布情况是图像的重要属性,可以用直方图修改图像的外观,标识图像的内容,检测图像中特定的物体或纹理。 单通道灰度图像中每个像素都有一个 0(黑色)-255(白色)的整

小秋 AI SLAM 入门实战教程 2509

Thread 和 Runnable 的区别

今天在学习多线程的时候,了解了 创建线程的几种方式,然后就脑子发热,突然想到 Thread 和 Runnable 创建线程有什么区别吗?毕竟是长得都不一样。所以我就找了一些资料(优快云 大佬们的文章)来看看,有了一些理解。 明确一点:Runnable 和 Thread 本质上是没有区别的。 区别 如果非要说区别的话,那么就有一下几点 Runnable 和 Thread 创建线程的方式不一样 Runnable 是接口,Thread 是实体类,Thread 和 Runnable 的关系就是实体与实现.

就这样吧 4780

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java里Thread和Runnable区别?

在Java中,Thread和Runnable是实现多线程的两种主要方式,但它们在使用和功能上有显著差异。Thread是一个类,通过继承并重写run()方法来定义线程逻辑,每次启动线程需调用start()方法,但受限于Java的单继承特性,灵活性较低。相比之下,Runnable是一个接口,通过实现run()方法定义任务逻辑,再由Thread对象启动线程,支持多重继承,更适合多线程共享任务。此外,Runnable与线程池的兼容性更好,能够更有效地管理资源。因此,推荐使用Runnable,尤其是在需要线程池或资源

weixin_46072507的博客 711

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Thread和Runnable的区别

Thread和Runnable的区别 1.Thread不i适合资源共享,Runnable容易实现资源的共享; 2.Runnable可以避免单继承的限制(不能访问父类的私有成员); 3.增加程序的健壮性,代码可以被多个线程共享,代码和数据独立; 4.线程池中只能放入实现Runnable或Callable类线程,不能直接放入继承Thread的类。 以卖票程序为例,通过继承Thread类来实现: pac...

Bxx优快云的博客 1325

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

java thread和runnable_java中thread和runnable的区别

展开全部线程的起动62616964757a686964616fe4b893e5b19e31333361326332并不是简单的调用了你的RUN方法,而是由一个线程调度器来分别调用你的所有线程的RUN方法,我们普通的RUN方法如果没有执行完是不会返回的,也就是会一直执行下去,这样RUN方法下面的方法就不可能会执行了,可是线程里的RUN方法却不一样,它只有一定的CPU时间,执行过后就给别的线程了,这样...

weixin_35666639的博客 1064

Thread和Runnable区别

(实现Runnable接口),代码如下: Thread和Runnable代码的区别:

酷小亚 2219

java thread和runnable_详解Java中Thread 和Runnable区别|chu

Thread 和Runnable 关系Thread类是接口Runnable的一个实现类。public class Thread implements Runnable源码分析Thread Threa类运行的时候调用start()方法,源代码如下:调用start()方法,实际运行的是start0方法,方法声明如下:private native void start0()native表明这个方法是个原...

weixin_42300478的博客 259
上一篇: BigDecimal类及用法注意点
下一篇: MySQL中聚合函数及distinct去重关键字的使用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值