java线程的状态

【Java多线程】Join的使用、如何使用getState()查看线程的状态 代码 t.join();表示:线程t插队 main被阻塞 需要等待t执行完毕后main再继续 package cn.hanquan.test; import java.text.SimpleDateFormat; import java.util.Date; public class TestJoin { public static void main(String[] args) thro... 阅读详情

刚刚复习到了java线程这一块,感觉还是有点迷糊啊,真是郁闷了, 脑子笨真是没治了!!哭

public class TestStatus {
	public static void main(String[] args) {
		YiFanThread yft = new YiFanThread("abcde");
		yft.start();
		YFThread tf = new YFThread("ddddd");
		tf.start();
		try {
			/*
			 * 使用了这个方法后只有将该线程执行完成后才会取执行别的线程
			 */
			tf.join();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		for(int i=0; i<100; i++) {
			System.out.println("main:" + i);
			/*
			 * 这个状态就是使该进程进入可运行状态,但是多核的机器上的表现不会很明显
			 */
			Thread.yield();
		}
	}
}

class YiFanThread extends Thread {
	public YiFanThread(String name) {
		super(name);
	}
	
	@Override
	public void run() {
		for(int i=0; i<10; i++) {
			System.out.println("-------" + this.getName() + ":" + i);
			try {
				/**
				 * 因为YiFan类使用了sleep对进程进行了休眠操作, 所以现在该线程就会进入阻塞状态
				 */
				Thread.sleep(10);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
}

class YFThread extends Thread {
	public YFThread(String name) {
		super(name);
	}
	
	@Override
	public void run() {
		for(int i=0; i<1000; i++) {
			System.out.println("==========" + this.getName() + ":" + i);
		}
	}
}


java中线程都会有5种状态

创建-> 就绪 -> 运行 -> 阻塞 -> 死亡

 

创建; 就是线程刚刚new出来还没有start的时候

就绪; 就是线程运行了start还没有正式运行的时候

运行; java虚拟机真正运行我们程序的时候

阻塞; sleep yield 等都会产生这种状态,说明白点就是等待某个条件成熟才会去执行

死亡; 这个不用过多的解释了

 

个人愚见,不能保证完全正确

Java多线程编程【线程的状态与调度】 本文介绍了Java多线程编程中线程的状态与调度机制,以及结束线程的方法。主要内容包括:线程的五种生命周期状态(新建、就绪、运行、阻塞、死亡)及其转换条件;线程调度策略(抢占式和协作式)以及优先级设置方法;重点分析了线程阻塞的多种原因(sleep、wait、join等)和状态转换关系。通过ThreadJoin和ThreadStopDemo两个示例程序,分别演示了线程合并操作和使用标志变量安全终止线程的方法。 阅读详情

相关推荐

PyTorch实战:3D U-Net医学图像分割从零搭建(附完整代码)

本文详细介绍了如何使用PyTorch从零搭建3D U-Net模型进行医学图像分割,涵盖三维卷积实现、模块化架构设计、医学图像专属优化策略及完整训练流程。通过实战代码演示,帮助开发者掌握UNet-3D在CT、MRI等三维医学图像分割中的应用,提升肝脏肿瘤分割、肺结节检测等任务的准确性。

weixin_29061997的博客 329

Java 线程的状态

线程刚被,但start()。就像是安排了任务但是还没有开始行动。这里的线程状态就是,这里的线程因为没有给他起名字所以是系统设置的Thread-0,调用 start()方法后进入的状态,它包含了这里的等待状态有三种,WAITING(等待),TIMED_WAITING(超时等待),BLOCKED(阻塞)。

m0_64124652的博客 1806

SAP OBYC自动过账全解析:从BSX到WRX的会计科目配置指南

本文深入解析SAP OBYC自动过账功能,从BSX到WRX的会计科目配置全流程,涵盖评估分组代码、事务码和评估类等核心概念。通过实战案例展示如何实现库存变动到财务过账的自动化流转,提升企业财务数据的准确性和效率。

weixin_29239279的博客 419

Java与线程、线程的状态

本篇**[并发与多线程系列]的第一篇,对应Java知识体系脑图中的并发与多线程**模块。 这一系列将对Java中并发与多线程的内容来展开。 线程的状态与通信机制线程的状态与通信机制线程的状态进程和线程并行与并发Java中线程的状态wait和sleep的区别Object.wait()的原理ObjectMonitor 是什么Thread.sleep()的原理关于wait会释放锁,sleep不会释放锁线程间的通信机制 线程的状态与通信机制 线程的状态 与线程有关的一些基础知识,在博主之前的博客 Java基

尼尧Nier的博客 430

QtWebApp的使用【在Qt中搭建HTTP服务器】(一)

用Qt和QtWebApp能够实现在C++中开发HTTP Web服务器应用程序。 首先,需要先安装Qt的软件开发工具包。点此下载 其次,下载最新的QtWebApp库。点此下载 下载并解压缩QtWebApp ZIP文件。你将会看到: 如何使用QtWebApp 1)将QtWebApp.zip文件解压到文件夹中,并创建一个名为“ MyFirstWebApp”的新Qt控制台项目。然后,建立如下文件结构: 2)将以下行添加到MyFirstWebApp项目的项目文件中: QT += network include(

饭的笔记本 2万+

深入解析UDS 0x19服务:DTC状态掩码与故障诊断实战

本文深入解析了UDS诊断协议中的核心0x19服务(ReadDTCInformation),重点拆解了DTC状态掩码(DTCStatusMask)的八个状态位及其在故障生命周期中的联动逻辑。通过实战案例,详细说明了从故障发生、确认到清除的全过程,并介绍了如何利用该服务进行深度诊断,包括读取扩展数据(如冻结帧)和避免常见开发误区,是理解汽车ECU故障管理机制的关键。

weixin_29248313的博客 323

Java线程的状态

【代码】Java线程的状态。

Liu Zijian‘s Blog 279

SmartFusion从FPGA到ARM系列教程

前言 本系列教程,将会以Microsemi SmartFusion一代芯片A2F200M3F为例,简单介绍片上ARM Cortex-M3 硬核 MCU 基本外设的使用,及其与FPGA逻辑模块进行交互的示例。 在学习片上硬核ARM Cortex-M3 MCU的开发之前,要先熟悉Microsemi Libero SoC开发环境的使用,可以参考:Microsemi Libero SoC系列教程 关于Microsemi SmartFusion混合型FPGA的介绍,可以参考:Microsemi SmartFusio.

whik1194的博客 8293

Java线程池ThreadPoolExecutor的状态

ThreadPoolExecutor使用一个AtomicInteger变量(ctl)同时保存线程池的运行状态(runState)和工作线程数(workerCount),其中高3位表示状态,低29位表示工作线程数。

@chen 520

21天学会基于 Linux 的 NPU 固件开发--12.3 如何参与 Linux 内核 NPU 子系统开发

从修复一个简单的文档拼写错误开始,或者为现有的开源 NPU 驱动(如 Sophgo, StarFive, Etinix 等厂商已上游化的驱动)添加一个缺失的 IOCTL 支持或优化一个算子,都是伟大的第一步。在 2026 年的 Linux Kernel (v6.12+) 中,NPU 驱动不再是孤立的字符设备,而是深度集成在 DRM 和 DMA-BUF 生态中,实现了与 GPU 类似的资源管理和调度能力。内核驱动必须提供清晰的 UAPI (User API),通常定义在。Step 4: 合并 (Merge)

amy_mhd的博客 67

数据架构师必看:大数据时代的架构演进与实践

数据架构是企业数据资产的“骨架”——它决定了数据能多快被处理、多准被分析、多安全被存储。本文将聚焦从传统架构到大数据架构的关键转折点,覆盖技术选型、典型场景、落地挑战三大核心命题,帮助读者建立“演进思维”而非“固定思维”。本文将按“历史演进→核心概念→技术原理→实战案例→趋势展望”的逻辑展开,用“超市仓库升级”贯穿始终,让抽象的技术概念具象化。传统数据仓库:精但小,适合结构化、批量分析。大数据架构:大但乱,适合全类型、海量数据存储。流批一体:解决实时+批量的效率问题。湖仓一体。

AI Agent Harness Engineering 913

【Java】线程的状态

在之前的文章中,已经介绍了关于线程的基础知识。我的主页: 🍆🍆🍆。

daydayup 7298

Android System UI 深度解析:从架构演进到车载 / TV 场景的全维度定制

本文全面解析 Android System UI 的架构设计、功能演进及场景化定制,揭示其作为安卓系统核心交互层的技术特性与生态价值。

学无止境 1579

【Java多线程】- 线程池的状态

总的来说,线程池的状态管理是其核心机制之一,通过状态转换控制任务的接收、处理和终止。理解这些状态有助于正确使用线程池的shutdown()、shutdownNow()等方法,避免资源泄漏或任务处理异常。在实际应用中,建议在不需要线程池时调用shutdown()或shutdownNow(),并通过awaitTermination()确保线程池完全终止。

yzyyishi的博客 974

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java线程的状态转换关系

BigMoster的博客 793

数学建模模型总结

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

【Java】线程的状态及常用方法

join()方法用于实现线程插队,调用完毕后会释放锁。sleep()方法用于实现线程休眠,调用完毕后不会释放锁。interrupt()方法用于设置该线程的中断状态为 true。yield()方法用于让出 CPU 执行。分时调度模型和抢占式调度模型。

weixin_71491685的博客 2121

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java 线程的状态图

fencer911的专栏 556

java监控线程池的状态

但在实际开发过程中,在线程池使用过程中可能会遇到各方面的故障,如线程池阻塞,无法提交新任务等。 如果你想监控某一个线程池的执行状态,线程池执行类ThreadPoolExecutor也给出了相关的 API, 能实时获取线程池的当前活动线程数、正在排队中的线程数、已经执行完成的线程数、总线程数等。 Java线程池及Future、Callable获得线程返回结果【Java线程池系列2】 Java多线程编程中,经常使用的Thread的Runnable()虽然被经常使用,但其有一个弊端,就是因为无法直接获取..

人生就像一场戏 1574

java 多线程-线程的状态

观察线程的状态State state=Thread对象.getState();int num=Thread.activeCount();//当前活跃的线程个数 public class n { public static void main(String[]args) throws InterruptedException { Thread t =new Thread(()->{ ...

biezanhan0147的博客 111

java 精灵线程_Java线程的状态分析

/*** 线程的状态分析*@authoraa**/public classThreadState {public static void main(String[] args) throwsException {/*** 新建线程,线程为新建状态* jdk:至今尚未启动的线程的状态。* 如果不给线程设置名称,线程的名称将会是:Thread-0,Thread-1。。。。。*/ThreadDemo t...

weixin_28933179的博客 120

JAVA线程对象的状态

JAVA线程对象的状态1.       概述在Thread类中定义了线程的6种状态:新建态,就绪态、运行态,阻塞态、等待态、终止态。1)  新建态:使用new运算符创建一个线程对象(new Thread)后,该线程仅仅是一个空对象,系统没有为它分配资源,该线程处于新建态(NEW)。2)  就绪态和运行态从操作系统角度来看,处于新建态的线程启动后,进入就绪态,再由操作系统调度执行而成为运行态。由于线程调度是由操作系统控制和管理,程序无法控制。所以,从程序设计角度看,线程启动后即进入运行态(RUNNABLE),

ryj111的专栏 2322

java 学习之线程的状态

jieluomu12的博客 114
上一篇: 用户管理的代码演练
yfstdio
博客等级 码龄14年 3粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值