java多线程基础五——isAlive()方法解释

2023-05-16

方法简单解释

该方法的功能就是判断当前的线程是否处于活动状态,那么什么是活动状态呢,活动状态就是线程已经启动且尚未终止,当线程正在运行或着准备开始运行的时候,就认为线程是“存活”的,并且以true和false的形式返回,下面举个小栗子:

package MyThread;

public class mythread extends Thread{

  @Override
  public void run() {
	  System.out.println("run="+this.isAlive());
  }
}

package test;
import MyThread.mythread;
import MyThread.CountOperate;
public class Run {
	public static void main(String[] args) {
	
		mythread my=new mythread();
		System.out.println("开始:"+my.isAlive());
		my.start();
		System.out.println("结束:"+my.isAlive());
	}
	
}

运行结果:
在这里插入图片描述
在这里需要注明一点,可以看到结束的时候是true,但是这个值是不确定的,之所以是true是因为mythread这个线程还没有执行完毕,所以才是true,我们简单的更改一下:
在这里插入图片描述
直接加上Thread.sleep(1000)即可观察出区别了
可以看到结束的时候已经变成了false,因为mythread这个线程在一秒内已经执行完毕了
在这里插入图片描述

另外,再注意一点,在使用isAlive()方法的时候,如果将线程对象以构造参数的方式传递给Thread对象进行start()启动的时候,运行的结果和前面的示例是有差异的,造成这种差异的原因归根到底还是来自于Thread.currentThread()和this的差异,在这里举个例子解释一下:

package MyThread;

public class CountOperate extends Thread{
	public CountOperate() {
		System.out.println("构造方法里——测试开始");
		System.out.println("Thread.currentThread().getName="+Thread.currentThread().getName());
	    System.out.println("Thread.currentThread().isAlive()="+Thread.currentThread().isAlive());
		System.out.println("This.getName="+this.getName());
		System.out.println("This.isAlive="+this.isAlive());
	    System.out.println("构造方法测试结束");
	} 
	@Override
	public void run() {
		System.out.println("run方法里——测试开始");
		System.out.println("Thread.currentThread().getName="+Thread.currentThread().getName());
	    System.out.println("Thread.currentThread().isAlive()="+Thread.currentThread().isAlive());
		System.out.println("This.getName="+this.getName());
		System.out.println("This.isAlive="+this.isAlive());
	    System.out.println("run方法结束");
	}

}

package test;
import MyThread.mythread;
import MyThread.CountOperate;
public class Run {
	public static void main(String[] args)  {
	
		CountOperate c=new CountOperate();
		Thread t1=new Thread(c);
		System.out.println("main begin t1 isAlive="+t1.isAlive());
		t1.setName("A");
		t1.start();
		System.out.println("main end t1 isAlive="+t1.isAlive());
	}
	
}

运行结果:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java多线程基础五——isAlive()方法解释 的相关文章

  • PX4运行时,输入top命令,查看系统运行状态

  • matlab:读取/写入

    importdata 能读取csv jpg bmp avi文件 figure存为bmp xff1a saveas 读取csv文件 xff1a csvread 写入csv文件 xff1a csvwrite 读取bmp文件 xff1a imre
  • 初学opencv

    https zhuanlan zhihu com p 568218818 https www zhihu com question 346053854 answer 2518654077 Halcon
  • 树莓派驱动水星无线网卡(MW150UH)教程指南

    目录 1 树莓派版本 2 无线网卡 查询无线网卡 1 如果为 Bus 001 Device 005 ID 0bda b711 Realtek Semiconductor Corp RTL8188GU 802 11n WLAN Adapter
  • matlab-快速查看数据分布

    1 如果你有一个数组 xff0c 想看数据分布 xff0c 可以调用hist xff0c 便可生成柱状分布图 xff1b 2 如果你有两个数组 xff0c 想对比两个数据的分布 xff0c 可以把两个数组放到一起拼成n行2列的矩阵 xff0
  • 设计一个简单的飞控硬件主要需要哪些元器件?

    主控芯片 xff1a STM32F407VGT6 稳压芯片 xff1a MIC5219 姿态传感器 xff1a MPU6050 磁力计 xff1a HMC5883L 气压计 xff1a MS5611 存储器 xff1a 24C02 USB串
  • AD中怎样修改原理图图纸大小

    方法一 xff1a 双击原理图纸框外的空白区域 2 在Standard Styles选项中调整原理图尺寸 方法二 xff1a 在工具栏中 gt 点击Design gt 点击Document Options gt 找到Standard sty
  • 为什么原理图中元器件下面有红色波浪线?

    为什么原理图中元器件下面有红色波浪线 xff1f 答 xff1a 因该元器件元器件的名字 xff08 disignator xff09 与别的元器件的名字重复了 解决方案 xff1a 对原理图中的元器件进行手动编号或自动编号 对元器件进行自
  • RT9193稳压芯片的电路原理图

    典型接线示意图 xff1a 问 xff1a 引脚BP是什么作用 xff1f 答 xff1a Reference Noise Bypass 参考噪声旁路 各引脚功能如下表 xff1a
  • 24C02原理图设计+管脚配置+管脚描述

  • 怎样介绍飞行器设计与工程这个专业?(手稿&视频字幕)

    1 从童年对纸飞机的喜爱引入 还记得童年的纸飞机吗 xff1f TA记载着我们童年的喜怒哀乐 还有我们对天空无限的憧憬和向往 2 1903年莱特兄弟第一次实现了人类的飞天梦 3 如今飞行器的发达 4 目前飞行器的飞行原理 xff1a 空气动
  • src路径是什么意思?

    src在软件中都是指source xff0c 也就是源代码的意思 在很多语言的工程里都一个src文件夹用来存放源代码以区别开其它文件 xff08 模板文件 Web文件等 xff09 对于Java来说 xff0c 就是主要用来存放后缀名为 j
  • Telnet&Https&SSL简介

    Telnet协议是TCP IP协议族中的一员 xff0c 是Internet远程登陆服务的标准协议和主要方式 它为用户提供了在本地计算机上完 成远程主机工作的能力 在终端使用者的电脑上使用telnet程序 xff0c 用它连接到服务器 终端
  • 解决MyEclipse保存时出现“Save could not be completed”问题

    一 问题 修改完jsp文件后出现如下问题 二 解决方法 window gt Preferences gt General gt Content Types gt Text gt 选中出现保存问题的文件类型 xff08 如JSP xff09
  • webpack devtool详解

    前言 devtool也是之前常用的一个配置 xff0c 我们稍微了解下吧 xff0c 不研究太深 xff0c 毕竟现在都不怎配置他 内容 devtool是配置sourceMap的 sourceMap大家都知道 xff0c 我们本地或者测试环
  • 数据结构一:绪论小知识

    数据结构一 xff1a 绪论 说明知识框架常见的例题集合欣总一炮 xff1a 说明 这部分并不在考研的考纲里面 xff0c 但是在进入数据结构这门课程学习上 xff0c 非常有帮助 xff0c 一步一步走嘛 知识框架 xff08 该图来自2
  • 数据结构实验之——二叉树前中后递归和非递归遍历的实现

    二叉树前中后递归和非递归遍历的实现 表述形式代码测试结果 表述形式 在这里我在非递归方面前序遍历和中序遍历都提供了两种不同的算法 xff0c 一种是我自己根据性质和原理写的还有一种就是比较普遍的算法 xff0c 代码也已经测试过啦 xff0
  • 数据结构实验之——哈夫曼树的实现

    数据结构实验之 哈夫曼树的实现 目录说明代码测试用例 目录 说明 哈夫曼树的这个实验我是采用常用的左 0 右 1 来实现的 xff0c 输入是用文本输入的 xff0c 大家在用之前目录下要记得创建 HT txt 文件o xff0c 下面的测
  • 数据结构实验之——职工管理系统的实现(包括保存至文本功能)

    职工管理系统实验 目录说明代码测试用例 目录 说明 这个代码初步的实现了职工管理系统的录入 删除 查询 保存文本等的功能 xff0c 在实现将职工信息保存至文本这个功能时 xff0c 不要忘记要创建一个保存的txt文件噢 xff0c 本实验
  • 数据结构实验之——二叉树层序遍历和竖向打印(超简易)

    二叉树的层序遍历和竖向打印 说明代码部分测试用例 说明 在这里二叉树的输入方式依旧是根左右 xff0c 空子树用 39 代替 xff0c 不清楚的朋友可以简单预览 xff1a 二叉树表达方式 二叉树的层序遍历在这里是利用队列来实现 xff0

随机推荐