关于java继承Thread类

这篇具有很好参考价值的文章主要介绍了关于java继承Thread类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关于java继承Thread类

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

三种创建方式

  • Thread class :继承Thread类
  • Runnable接口 :实现Runnable接口
  • Callable接口 :实现Callable接口

创建线程

JDK帮助文档描述:创建一个新的执行线程有两个方法,一个是将一个类声明为Thread的子类,这个子类应该重写run类的方法Thread,然后可以分配并启动子类。

Thread

  • 自定义线程类,继承Thread类。
  • 重写run()方法,编写线程执行语句(执行体)。
  • 创建线程对象,调用start()方法启动线程。

1、我们新建一个类,然后继承Thread,然后按照上面的步骤去写代码。

package thread;

public class TestThread1 extends Thread{
    @Override
    public void run() {
        //run方法线程体
    }

    public static void main(String[] args) {
        //主线程
    }
}

2、我们在run方法中,写一个循环,输出一行字。

package thread;

public class TestThread1 extends Thread{
    @Override
    public void run() {
        //run方法线程体
        for (int i = 0; i < 10; i++) {
            System.out.println("学习线程--"+i);
        }
    }

    public static void main(String[] args) {
        //主线程
        for (int i = 0; i < 10; i++) {
            System.out.println("看代码--"+i);
        }
    }
}

3、我们执行一下代码,会看到执行了主线程的内容,我们看以下执行结果,不一一展示了😊

看代码--0
看代码--1
看代码--2
看代码--3
看代码--4
.......
看代码--9

4、我们创建一个线程的对象,然后用start执行。

package thread;

public class TestThread1 extends Thread{
    @Override
    public void run() {
        //run方法线程体
        for (int i = 0; i < 10; i++) {
            System.out.println("学习线程--"+i);
        }
    }

    public static void main(String[] args) {
        //创建一个线程对象
        TestThread1 testThread1 = new TestThread1();
        //调用start方法,开启线程
        testThread1.start();
        //主线程
        for (int i = 0; i < 10; i++) {
            System.out.println("看代码--"+i);
        }
    }
}

我们来执行一下代码,可以看到两个内容在同时执行🤔

看代码--0
学习线程--0
学习线程--1
看代码--1
看代码--2
看代码--3
看代码--4
看代码--5
看代码--6
看代码--7
看代码--8
学习线程--2
看代码--9
学习线程--3
学习线程--4
学习线程--5
学习线程--6
学习线程--7
学习线程--8
学习线程--9

5、如果我们不用start,用正常重写的run方法,就会按照顺序结构去执行。

package thread;

public class TestThread1 extends Thread{
    @Override
    public void run() {
        //run方法线程体
        for (int i = 0; i < 10; i++) {
            System.out.println("学习线程--"+i);
        }
    }

    public static void main(String[] args) {
        //创建一个线程对象
        TestThread1 testThread1 = new TestThread1();
        //调用run方法
        testThread1.run();
        //主线程
        for (int i = 0; i < 10; i++) {
            System.out.println("看代码--"+i);
        }
    }
}

我们来执行一下代码,可以看到代码是先后执行的🤔文章来源地址https://www.toymoban.com/news/detail-829876.html

学习线程--0
学习线程--1
学习线程--2
学习线程--3
学习线程--4
学习线程--5
学习线程--6
学习线程--7
学习线程--8
学习线程--9
看代码--0
看代码--1
看代码--2
看代码--3
看代码--4
看代码--5
看代码--6
看代码--7
看代码--8
看代码--9

总结

  • 线程开启不一定立即执行,需要由CPU调度执行。

到了这里,关于关于java继承Thread类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【区块链技术开发】 关于Windows10平台Solidity语言开发环境配置

    在 Windows 上配置 Solidity 语言开发环境需要进行以下步骤:

    2023年04月20日
    浏览(67)
  • 【面试题】关于JavaScript实现继承的六大方案,你都了解过吗?

    ​ 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库  web前端面试题库 VS java后端面试题库大全 面试官:“你说说 JavaScript 中实现继承有哪几种方法?” 紧张的萌新:“额,class 中用 extends 实现继承,然后...没了...” 面试官:“...” ······ 想必绝大

    2024年02月02日
    浏览(44)
  • 关于 java如何集成chatgpt,如何开发接口,如何集成vue前端界面(一)

    Java如何集成ChatGPT,如何开发接口,如何集成Vue前端界面 随着人工智能技术的不断发展,聊天机器人已经成为了人们日常生活中不可或缺的一部分。ChatGPT是一种基于深度学习的聊天机器人技术,它可以通过学习大量的语料库来生成自然流畅的对话。本文将介绍如何使用Java语

    2024年02月04日
    浏览(47)
  • 【面向对象语言三大特性之 “继承”】

    目录 1.继承的概念及定义 1.1继承的概念 1.2 继承定义 1.2.1定义格式  1.2.2继承关系和访问限定符  1.2.3继承基类成员访问方式的变化 2.基类和派生类对象赋值转换 3.继承中的作用域 4.派生类的默认成员函数 5.继承与友元 6. 继承与静态成员 7.复杂的菱形继承及菱形虚拟继承 8.继

    2023年04月08日
    浏览(44)
  • go语言(十一)----面向对象继承

    一、面向对象继承 写一个父类 子类继承 父类 子类的新方法 定义子类 两种方法: 第一种: 第二种: 子类继承父类的使用

    2024年01月22日
    浏览(39)
  • 【Java】Thread详解

    本文将从以下几方面来展开对Thread的介绍。 1.线程创建 2.线程中断 3.线程等待 4.线程休眠 在前面的文章中,已经总结了关于Thread的一些理解。 在阅读本文之前,最好对其有一些基础的了解。 文章链接: 【JavaSE】进程是什么? 文章链接: 【JavaSE】初识线程,线程与进程的区别

    2024年04月10日
    浏览(36)
  • 开发语言漫谈-Java

            由于C++过于复杂,Java诞生了。与C++相比,Java更易于学习和使用,它去掉C++中的指针和解决了内存管理问题。Java提供了垃圾自动回收机制,自动管理不再使用的内存。Python又进一步简化,使得语法更简洁,更易于阅读和编写。当然随着简化,性能就越来越低。    

    2024年04月10日
    浏览(49)
  • 关于 Delphi 11.3跨平台开发Android调用 JNI JAR java 的说明和注意事项

    关于 调用 JNI JAR 的说明和注意事项,调用第三方 JAR SDK 和 翻译 安卓 JAVA 代码 的说明 V2017.10.18 (* ************************************************ *) (* *) (* *) (* 设计:爱吃猪头肉 Flying Wang 2015-04-15  *) (* 上面的版权声明请不要移除。 *) (* *) (* ************************************************ *) 本人所

    2024年02月07日
    浏览(61)
  • rt-thread rtc设备驱动开发

    RT-Thread 的 RTC (实时时钟)设备为操作系统的时间系统提供了基础服务。应用层对于 RTC 设备一般不存在直接调用的 API ,使用者中间接通过设备的 control 接口完成交互。 I/O设备框架 ​ I/O 设备模型框架,如下图所示,它位于硬件和应用程序之间,共分为 I/O 设备管理层、设备

    2024年02月14日
    浏览(46)
  • Java 线程池(Thread Pools)详解

    目录 1、线程池介绍 2、线程池执行原理 3、线程池中的阻塞队列 4、Java 线程池中的拒绝策略 5、Java 提供的创建线程池的方式 6、线程池的使用示例 7、ForkJoinPool 和 ThreadPool 的区别 1、线程池介绍          线程池是一种重用线程的机制 ,用于提高线程的利用率和管理线程的

    2024年02月05日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包