浅谈java中继承Thread与实现Runable的区别

实现线程的方式(继承Thread类,实现Runnable和Callable接口)(小白教程含泪总结,读完必会!!!!) 在Java中使用Thread类表示线程,每一个线程都是Thread类的对象或者子类的对象,相当于Thread类是所有线程的父类,所有的线程对象都是一个任务,需要调度器安排序列被CPU执行,在使用了Thread类时,这些线程对象会被同时执行;在自定义类继承implements Callable接口时,需要注意后必须跟一个泛型类,该泛型类的类型可以自定义,pubic class MyCallable implements Callable<T>不能直接使用Thread类中的方法,没有返回值; 阅读详情

    java中现实多线程可以继承Thread,也可以实现Runable;

    一般的用法都是重写或实现run方法,然后用Tread调用start方法(注意,只有Thread有start方法;Runable是没有start方法的);

    在我们通常简单的用多线程时尽量通过实现Runable的方式;因为实现R相对于继承T有如下有点:

    1. 继承了T后不能再继承别的类,但实现R的同时可以再继承其他某个类,然而两者都实现了简单的多线程,所以R有此优势;

    2. 实现了R后可以资源共享,而继承了T后不能资源共享(共享指的是共同操作类的成员变量(当然是非静态变量,静态的肯定都能共享));因为继承了T后每次使用时都创建新的类,而实现R后每次使用时创建了新的Thread,但创建这些Thread是可以用同一个Runable,所以可以共享;此乃第二个有点;

    然而继承Thread不可能一无是处,否则就没必要存在这种方式了;

    事实上Runable提供了run方法(Thread的run也是实现了Runable),而Thread中是有各种线程实现、管理的方法,start是其中一个方法,用来提供启动线程的方法;

    所以,当现有的多线程方式Thread不能满足你的要求,你需要修改或优化Thread时,必须要继承Thread了,因为很多对线程相关的的东西是在Thread中实现的;这个是Thread存在的必要,也即优势;

    总之,想要继承别的类,或想要简单共享资源就用Runable,(当然,我觉得Thread通过别的方式应该也可以实现资源共享的);想要优化线程时可以继承Thread; 一般情况用Runable,没有特定需求是两者都可用;

OVER;

 

NGSIM数据集字段解析:从车辆轨迹到交通行为分析 本文深度解析NGSIM数据集的核心字段及其在交通行为分析中的应用。详细解读了车辆时空定位、状态属性及交互关系等关键字段,并通过高速路“幽灵堵车”和城市路口左转行为两个实战案例,展示了如何利用该数据集进行微观交通行为建模与驾驶特征提取,为交通流研究和自动驾驶算法测试提供数据基础。 阅读详情

相关推荐

最全中文停用词表(可直接复制)

最全的停用此表整理 词表名 词表文件 中文停用词表 cn_stopwords.txt 哈工大停用词表 hit_stopwords.txt 百度停用词表 baidu_stopwords.txt 机器智能实验室停用词库 scu_stopwords.txt 以上停用词表链接:https://github.com/goto456/stopwords 以下是我常用的1893个停用词,可直接复制 ! " # $ % & ' ( ) * + , - -- . .. ... ....

dilifish的博客 12万+

继承Thread方式

线程继承Thread方式一、继承Thread类二、实现Runable接口2.读入数据总结 继承Thread方式 一、继承Thread类 创建线程比较原始的一种方式,现在已经不推荐了。 package week3.demo; public class ThreadByExtend extends Thread{ public static volatile int count = 0; //Thread真正执行的代码段 public void run() { f

qq_43426255的博客 2519

CPRI原理及应用--基本原理

本文主要介绍CPRI的基本原理,包括CPRI的发展历程、CPRI基本协议、速率、帧结构、时延模型等

u014035968的博客 2万+

创建线程的第一种方式:继承Thread类(含Thread类部分源码解析)

创建线程的第一种方式:继承Thread类 定义一个类,继承Thread类 重写Thread类中的run方法 创建Thread类的实现类的对象 利用该对象调用Thread类中的start方法 运行结果 好了,接下来我们看源码。 首先我们看一下Thread类。 可以看到Thread类实现了Runnable接口,这是另外一种创建线程的方式,我们会在之后的章节中给出。 在类声明的下面是静态代码块,也就是static{}包裹的部分,里面的代码会在类加载的时候执行一次,之后便不会在执行。

just_still_away的博客 1694

Ubuntu使用cmake出现Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed

解决 Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed

qq_44225529的博客 1万+

别再到处找模板了!手把手教你用Vue3+Element Plus搭建一个‘能跑起来’的管理后台原型

本文详细介绍了如何利用Vue3和Element Plus在72小时内快速搭建一个功能完整的管理后台原型。从环境准备到项目获取、依赖安装、原型定制、数据模拟以及构建优化,手把手教你打造一个可直接演示的后台系统,特别适合创业者快速验证产品逻辑。

weixin_26854555的博客 182

【Java】创建线程的方式:继承Thread和实现Runnable接口(多线程安全问题)

继承Thread和实现Ruunable接口的区别(举例说明) 1.首先继承Thread是父类与子类的关系,实现Ruunable接口是实现类和接口的关系。 2.继承只能单继承,而接口可以多实现。(先继承后实现。)

m0_64210833的博客 5450

基于STM32F4XX 、HAL库的GXHT30C温湿度传感器驱动应用C语言程序设计

define GXHT30C_STATUS_WRITE_CHK (1 << 0) // 写数据校验状态。#define GXHT30C_STATUS_HUMI_TRACK (1 << 11) // 湿度跟踪报警。#define GXHT30C_STATUS_TEMP_TRACK (1 << 10) // 温度跟踪报警。#define GXHT30C_STATUS_CMD_STATUS (1 << 1) // 命令执行状态。

PP_Cottage的博客 226

【Java】线程基本使用——继承 Thread 类

1. 创建线程的两种方式 在java中线程来使用有两种方法。 继承Thread类,重写run方法 实现Runnable接口,重写run方法 2. 线程应用案例1-- 继承 Thread 类 请编写程序,开启一个线程,该线程每隔1秒。在控制台输出“瞄瞄,我是小猫咪” 对上题改进:当输出80次“瞄瞄,我是小猫咪”,结束该线程 使用JConsole 监控线程执行情况,并画出程序示意图 ...

兮动人 3710

Python实战日志_P4_图书馆Web API服务

目标:使用Flask将图书馆系统升级为RESTful API服务,掌握Web开发基础难度:⭐⭐⭐⭐☆预计学习时间:75分钟前置要求:已完成第3篇《个人图书馆管理系统》

qq_39436086的博客 83

XYC Q8开源掌机刷第三方系统教程

分区结束后直接将各种游戏文件放入OD分区的Roms文件夹下

m0_60352504的博客 4564

实现多线程的两种方法:继承Thread类或实现Runnable接口

实现多线程的两种方法:继承Thread类或实现Runnable接口Java中实现多线程有两种方法:继承Thread类和实现Runnable接口,在程序开发中只要是多线程,我们一般都是实现Runnable接口,原因归结为一点:实现接口比继承类要好。多线程的第一种实现方式:继承Thread类步骤如下 创建一个继承Thread的类(假定为A),并重写Thread的run方法 构造一个A类对象

wojiushimogui的博客 5412

【Halcon-2D测量】add_metrology_object_rectangle2_measure 函数功能(用于向2D计量模型中添加旋转矩形(rectangle2类型)计量对象)

HALCON算子add_metrology_object_rectangle2_measure解析摘要 该算子是HALCON 2D计量模块的核心算子,用于添加旋转矩形计量对象并配置测量参数。主要功能包括:定义旋转矩形几何轮廓(中心坐标、主轴角度、长短半长);生成垂直于矩形边界的测量区域;设置边缘提取预处理参数(高斯平滑、振幅阈值)。关键注意事项:MeasureLength1必须小于矩形长短半长;角度参数Phi需使用弧度单位;多线程需同步模型句柄。该算子适用于方形螺母、PCB板边框等矩形零件的精密测量,需与a

weixin_45590420的博客 1223

浅谈多线程,以及比较Thread类与Runable接口

所谓的多线程是指一个进程

Mr_qyw的专栏 422

OV9734 DATASHEET,完整规格书

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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

浅谈java中的线程的两种实现方式Runable接口和Thread类及火车站售票仿真

一、进程和线程的区别 1.1什么是进程? 进程就是当前正在运行的程序,专业一点说就是应用程序在内存中的执行区域 1.2什么是线程? 线程就是进程中的一个执行控制单元,执行路径,一个进程可以有一个线程叫做单线程,也可以有多个线程叫多线程 单线程:安全性高,效率低 多线程:安全性低,效率高 二、线程实现的两种方式 2.1用继承Thread类的方法实现 public class My...

java_xiaoWhite的博客 340

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

浅谈 Java线程状态转换及控制

 一个线程被创建后就进入了线程的生命周期。在线程的生命周期中,共包括新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)这五种状态。当线程启动以后,CPU需要在多个线程之间切换,所以线程也会随之在运行、阻塞、就绪这几种状态之间切换。   线程的状态转换如图:   当使用new关键字创建一个线程对象后,该线程就处于新建状态。此时的线程就是一个在堆中分配了内存的静态的对象,线程的执行体(run方法的代码)不会被执行。   当调用了线程对象的s.

307

Java Thread和Runnable详解

1、继承thread方式 //1、继承Thread类 public class Student extends Thread { private String name; private Punishment punishment; public Student(String name, Punishment punishment) { //2、调用Thre...

hongxue8888的博客 1273

Thread 类的基本用法

run()方法的方法体是线程需要执行的任务。

2302_79968236的博客 1426

Java多线程——继承Thread类

然后右击lib,选择Add as libary,搞定。注意,线程开启不一定立刻执行,由CPU调度执行。多条执行路径,主线程和子线程。方法,编写线程执行体。

chenyang_88的博客 418

Java中Thread类的基本用法

Java中的Thread类的基本使用

m0_67683346的博客 6338

Java多线程系列--Thread和Runnable

概要 本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable。之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程。关于线程池的内容,我们以后会详细介绍;现在,先对的Thread和Runnable进行了解。本章内容包括:Thread和Runnable的简介Thread和Runnable...

dengyiyu5280的博客 391

Java继承Thread类 创建线程

大家好,今天分享Java继承Thread类 创建线程 首先Java创建线程可以通过三种方法 1.继承Thread类创建线程类(重点) 2.通过Runnable接口创建线程类(重点) 通过Callable接口(了解即可) 这次我们使用第一种方法来创建Java线程: 即: Java继承Thread类 创建线程 操作的步骤: 自定义线程类继承Thread类 重写run()方法,编写线程执行体 创建对象,调用start()方法自动线程 写源码: package Demo01; //创建线程方法之一 :

weixin_47556601的博客 3356

Java多线程(Thread,Runnable,线程的生命周期,线程同步)

本文介绍了Java中的多线程,介绍了实现多线程的方法,线程的生命周期,还有线程同步的相关问题

fj123321666的博客 915

Java并发编程(二):Thread与Runnable的底层原理

本篇是Java并发编程系列第二章,本章主要讲解Thread类实现的底层原理,Runnable接口的存在意义。以及Thread底层源码的原理深度剖析,值得一阅

FNTP_ 1662

Java--多线程--Thread类+Runnable接口

一个进程是一个包含自身地址的程序,每个独立执行的程序都称为进程,也就是正在执行的程序,系统可以分配给每个进程一段有限的使用CPU的时间(CPU时间片),CPU在这个时间段中执行某个进程,然后下一个时间片又会跳至另一个进程中去执行;由于CPU转换很快,所以使得每个进程好像是在同时执行一样。Java语言提供了并发机制,程序中可以执行多个线程,每个线程完成一个功能,并于其他线程并发执行,这种机制被称为多线程。

qq_40132294的博客 2494

继承Thread类

在Java里面创建线程有三种方式 继承Thread类(少用继承) 实现Runnable接口(多用实现) 实现Callable接口(用的不多) 继承Thread类 将一个类声明为一个Thread的子类,子类重写run类的方法Thread,然后分配并启动子类的实例 简单说: 1、继承Thread类 2、重写run方法(run是子线程的入口点) 3、通过start方法启动线程 /*...

weixin_44771312的博客 563

关于java继承Thread类

我们在前面的文章中,了解到了java的多线程,进程等基础的概念,我们本篇文章进一步介绍一下线程的创建以及几种创建方式,本篇文章以Thread类为主,先摸清Thread类😀。

落满樱花的羊的博客 691
下一篇: java中sleep、interrupt、wait、notify、join、yield用法
ArtisticProgramming
博客等级 码龄8年 1粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值