一 点睛

通过继承Thread类创建线程并启动多线程的步骤:

1 定义Thread的子类,并重写该类的run()方法,该run()方法的方法体代表了线程需要完成的任务。因此run()方法称为线程执行体。

2 创建Thread子类的实例,即创建子线程对象。

3 调用线程对象的start()方法来启动该线程。

二 代码

// 通过继承Thread类来创建线程类
public class FirstThread extends Thread
{private int i ;// 重写run方法,run方法的方法体就是线程执行体public void run(){for ( ; i < 100 ; i++ ){// 当线程类继承Thread类时,直接使用this即可获取当前线程// Thread对象的getName()返回当前该线程的名字// 因此可以直接调用getName()方法返回当前线程的名System.out.println(getName() +  " " + i);}}public static void main(String[] args){for (int i = 0; i < 100;  i++){// 调用Thread的currentThread方法获取当前线程System.out.println(Thread.currentThread().getName()+  " " + i);if (i == 20){// 创建、并启动第一条线程new FirstThread().start();// 创建、并启动第二条线程new FirstThread().start();}}}
}

三 运行

......
main 20
main 21
main 22
Thread-0 0
main 23
Thread-1 0
main 24
Thread-0 1
main 25
Thread-1 1
main 26
Thread-0 2
main 27
Thread-1 2
main 28
......

四 说明

1 虽然程序只显示地创建并启动了2个线程,但实际上有3个线程,因为还有一个主线程。main()方法的方法体代表主线程的线程执行体。

2 Thread-0和Thread-1两个线程输出的i变量不连续。这是因为每次创建线程对象都需要创建一个FirstThread对象,所以Thread-0和Thread-1不能共享该实例变量。

3 使用继承Thread类的方法来创建线程时,多个线程之间无法共享线程类的实例变量。

继承Thread类创建线程类相关推荐

  1. Thread类创建线程

    目录 1.在java中执行多线程编辑 1.1通过Thread类创建线程 1.2创建线程方法2 1.3创建线程方法3 1.4创建线程方法4 1.5创建线程方法5 2.多线程执行效率 2.1两个变量同时自 ...

  2. Java中创建线程需要使用的类_如何通过使用Java中的匿名类创建线程?

    甲线程是可以同时与该程序的其他部分被执行的功能.所有Java程序都有至少一个称为主线程的线程,该线程由Java虚拟机(JVM)在程序启动时由主线程调用main()方法创建. 在Java中,我们可以通过 ...

  3. 【 Thread】创建线程的2种方法

    (一)Thread类 1.结构 java.lang.Object |---java.lang.Thread 2.创建线程的两种方法 (1)一种方法是将类声明为Thread的子类,该子类应重写Threa ...

  4. 继承thread类创建线程

    package com.learn;//1. 继承thread类,重写run方法,run方法中,需要线程执行代码 class ThreadDemo01 extends Thread {// run方法 ...

  5. java 创建线程thread_初学Java多线程:用Thread类创建线程

    在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程, ...

  6. C++多线程:thread类创建线程的多种方式

    文章目录 描述 函数成员简介 总结 描述 头文件 <thread> 声明方式:std::thread <obj> 简介 线程在构造关联的线程对象时立即开始执行,从提供给作为构造 ...

  7. 13.6 Thread类自定义线程类

    package cn.chen.thread; /** * 线程:* 多线程:* 一个java程序只是有两个线程:* 一个是主线程负责main方法代码执行,一个是垃圾回收器线程,负责* 创建线程的方式 ...

  8. 【Groovy】MOP 元对象协议与元编程 ( Expando 动态类 | 创建动态类 | 为动态类增加字段和方法 )

    文章目录 一.Expando 动态类简介 二.动态类创建 三.为动态类增加字段和方法 四.完整代码示例 一.Expando 动态类简介 Groovy 运行时 , 可以动态地创建一个类 , 该类称为 & ...

  9. 线程的应用-继承Thread类创建线程

    Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例.启动线程的唯一方法就是通过Thread类的start()实例方法.start()方法是一个native方法,它会启动一个 ...

最新文章

  1. Windwos 08R2_DNS全面图文详解
  2. 什么才是软件开发的葵花宝典?
  3. Boost:以协程的方式实现echo服务器的实例
  4. 51nod 1414 冰雕 思路:暴力模拟题
  5. 诺基亚对塞班的支持将持续到2016年
  6. 19、mysql中定时器的创建和使用
  7. 2018-11-02 在代码中进行中文命名实践的短期目标
  8. solr elasticsearch比较
  9. Leetcode 142 Linked List Cycle II
  10. 2013 年亚洲赛杭州赛区卡题总结
  11. NumPy Cookbook 带注释源码 四、连接 NumPy 与 剩余世界
  12. excel填充序列_零基础、初学者必须掌握的10个Excel技巧,办公必备!
  13. 【TGRS】Ship Detection in Large-Scale SAR Images Via Spatial Shuffle-Group Enhance Attention译读笔记
  14. java计算机毕业设计辅导员班级量化管理系统MyBatis+系统+LW文档+源码+调试部署
  15. Json汉化-使用JavaScript和百度翻译API免费实现Json文件的汉化
  16. echarts中环形图加边框
  17. Android N 指纹框架
  18. Apache ShenYu ModifyResponse插件使用
  19. 【Java语言】项目实践:汽车租赁系统(源码)(面向对象方法)
  20. 2.8.1 矩阵的合同

热门文章

  1. python3.x url转义为正常值
  2. python 列表元素倒数第一,第二个访问方法
  3. feignclient url_对Feign的请求url 重写
  4. java获取随机数方法_《Java语言程序设计》Java获取随机数方法
  5. 华为和荣耀的区别看这几点 别踩雷双品牌很好懂
  6. 公众号关键词文章排名,公众号文章排名靠什么决定
  7. python小学教学案例_Python学习案例
  8. 消息队列常见的几种使用场景介绍
  9. Unity3D游戏开发
  10. Android分屏功能,适配及相关问题