当前位置: 首页 > news >正文

Thread类的使用方法

** 先创建一个子类 **

package Day2021001;/*
 *@author wanghongyuan
 *@Create 2021/1/1 9:46
 */
// 创建一个Thread类的子类
public class MyThread extends Thread {
// 在Thread类的子类中重写Thread类中的run方法,设置线程任务
    @Override
    public void run() {
        for (int i = 0; i < 20; i++) {
            System.out.println("run -->"+i);
        }
    }
}

** 这是一个main方法,执行多线程 **

package Day2021001;/*
 *@author wanghongyuan
 *@Create 2021/1/1 9:26
 */
/*
    创建多线程程序的第一种方式:创建Thread类的子类
    java.lang.Thread类,描述线程的类,我们想要实现多线程的类,就必须继承Thread类。

    实现步骤:
    1. 创建一个Thread类的子类
    2. 在Thread类的子类中重写Thread类中的run方法,设置线程任务
    3. 创建Thread类的子类对象
    4. 调用Thread类中的方法start方法,开启新的线程,执行run方法
        void start()使该线程开始执行:Java虚拟机调用该线程的run方法。
        结果是两个线程并发地运行,当前线程(main线程)和另一个线程(创建的新的线程,执行其run方法)。
        多次启动一个线程是非法的,特别是当线程已经结束执行后,不能再重新启动。
    java程序属于抢占式调度,那个线程的优先级高,那个线程就优先执行;同一个优先级,随机选择一个执行。
 */
public class Demo01Thread extends Thread {
    public static void main(String[] args) {
        // 创建Thread类的子类对象
        MyThread my = new MyThread();
        //调用Thread类中的方法start方法,开启新的线程,执行run方法
        my.start();

        for (int i = 0; i < 20; i++) {
            System.out.println("main -->" + i);
        }
    }
}


运行结果

D:\Java\jdk-14.0.2\bin\java.exe "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2020.2.4\lib\idea_rt.jar=52807:D:\Program Files\JetBrains\IntelliJ IDEA 2020.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\Administrator\IdeaProjects\DaYuanXue\out\production\DaYuanXue Day2021001.Demo01Thread
run -->0
main -->0
run -->1
main -->1
run -->2
main -->2
run -->3
main -->3
run -->4
main -->4
run -->5
main -->5
run -->6
main -->6
run -->7
main -->7
run -->8
main -->8
main -->9
run -->9
main -->10
run -->10
main -->11
run -->11
main -->12
run -->12
main -->13
run -->13
main -->14
run -->14
main -->15
run -->15
main -->16
run -->16
main -->17
run -->17
main -->18
run -->18
main -->19
run -->19

Process finished with exit code 0

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 异常的总结
  • Thread类的获取线程名称和设置线程名称
  • Runnable类
  • 匿名内部类方式实现线程的创建
  • ThreadSafe解决线程安全的问题
  • 资源唤醒案例
  • 线程池的使用
  • Lambda标准格式
  • File类的构造方法
  • 递归计算
  • 使用递归遍历目录
  • 对文本内容进行排序
  • 测试框架
  • 写个web自动化
  • 与全球外国人即时聊天的网站
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 07.Android之多媒体问题
  • C语言笔记(第一章:C语言编程)
  • ES6核心特性
  • interface和setter,getter
  • java2019面试题北京
  • Java的Interrupt与线程中断
  • js对象的深浅拷贝
  • magento 货币换算
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • python docx文档转html页面
  • 闭包--闭包之tab栏切换(四)
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 规范化安全开发 KOA 手脚架
  • 机器学习中为什么要做归一化normalization
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 前端技术周刊 2019-01-14:客户端存储
  • 容器服务kubernetes弹性伸缩高级用法
  • 事件委托的小应用
  • 06-01 点餐小程序前台界面搭建
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​Java基础复习笔记 第16章:网络编程
  • ​TypeScript都不会用,也敢说会前端?
  • #includecmath
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (1) caustics\
  • (175)FPGA门控时钟技术
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转载)从 Java 代码到 Java 堆
  • *p++,*(p++),*++p,(*p)++区别?
  • ... 是什么 ?... 有什么用处?
  • .ai域名是什么后缀?