java_线程状态_终止

Qt Coordinate System Qt 坐标系统Qt 坐标系统 数学基础 Qt坐标系统 视口 平移变换 缩放变换 setWindow 旋转 总结数学基础 矩阵与线性变换坐标系变换Qt坐标系统 视口和OpenGL一样,视口确定了画面在窗口(QWidget)中显示的区域,Qt的绘图坐标会完全映射到视口(View port)上,就像图示一样。默认情况下,窗口和视口是重合的,视口的大小覆盖了整个窗口。和OpenGL一样,Qt的QPa 阅读详情

目录

线程停止两种情况

1、自身正常停止

2、外部干涉

2.1 外部干涉结构体

运行结果


线程停止两种情况

 

1、自身正常停止

自然调用完成,结束线程;

2、外部干涉

停止不能自身正常停止的线程:比如死循环。方法:提供boolean类型的终止变量,外部干涉。

2.1 外部干涉结构体及理解代码

 

  1. 加入标识:线程类中 定义 线程体使用的标识;
  2. 关联标识:线程体使用该标识;
  3. 提供方法:对外提供方法改变标识。
package com.pt.thread;

import java.util.jar.Attributes.Name;

/**
 * 中止线程
 * 1)	加入标识:线程类中 定义 线程体使用的标识;
 * 2)	关联标识:线程体使用该标识;
 * 3)	提供方法:对外提供方法改变标识。
 * @author tyler
 *
 */
public class TerminateThread implements Runnable {
	// 1、加入标识
	private boolean flag = true;
	private String name;
	 
	public TerminateThread(String name) {
		super();
		this.name = name;
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub
		// 实现多线程:实现Runnable接口,重写run函数
		
		// 2、关联标识
		int i = 0;
		while (flag) {
			System.out.println("这是TerminateThread类对象" + this.name + "的线程体内容" + "--->" + i++ + "");
		}
	}
	
	// 3、对外提供方法:改变标识
	public void terminateFlag() {
		this.flag = false;
	}
	
	public static void main(String[] args) {
		// 主函数
		// 启动线程:1、目标对象;2、调用THread类start函数
		TerminateThread targetObject = new TerminateThread("1号");
		new Thread(targetObject).start();
		
		// 主线程代码
		for (int i = 0; i < 99; i++) {
			// 外部控制线程终止
			if (i == 88) {
				targetObject.terminateFlag();
				System.out.println(targetObject.name + "game over");
			}
			// 主线程内容
			System.out.println("主线程内容-->" + i);
		}
	}
	
}

运行结果

主线程内容-->0
这是TerminateThread类对象1号的线程体内容--->0
主线程内容-->1
这是TerminateThread类对象1号的线程体内容--->1
这是TerminateThread类对象1号的线程体内容--->2
这是TerminateThread类对象1号的线程体内容--->3
这是TerminateThread类对象1号的线程体内容--->4
这是TerminateThread类对象1号的线程体内容--->5
这是TerminateThread类对象1号的线程体内容--->6
主线程内容-->2
主线程内容-->3
主线程内容-->4
主线程内容-->5
主线程内容-->6
主线程内容-->7
主线程内容-->8
主线程内容-->9
主线程内容-->10
主线程内容-->11
这是TerminateThread类对象1号的线程体内容--->7
主线程内容-->12
主线程内容-->13
主线程内容-->14
这是TerminateThread类对象1号的线程体内容--->8
主线程内容-->15
主线程内容-->16
主线程内容-->17
主线程内容-->18
主线程内容-->19
主线程内容-->20
主线程内容-->21
主线程内容-->22
主线程内容-->23
主线程内容-->24
主线程内容-->25
主线程内容-->26
主线程内容-->27
主线程内容-->28
主线程内容-->29
主线程内容-->30
主线程内容-->31
主线程内容-->32
主线程内容-->33
主线程内容-->34
主线程内容-->35
主线程内容-->36
主线程内容-->37
主线程内容-->38
主线程内容-->39
主线程内容-->40
这是TerminateThread类对象1号的线程体内容--->9
这是TerminateThread类对象1号的线程体内容--->10
主线程内容-->41
这是TerminateThread类对象1号的线程体内容--->11
这是TerminateThread类对象1号的线程体内容--->12
这是TerminateThread类对象1号的线程体内容--->13
这是TerminateThread类对象1号的线程体内容--->14
这是TerminateThread类对象1号的线程体内容--->15
这是TerminateThread类对象1号的线程体内容--->16
这是TerminateThread类对象1号的线程体内容--->17
这是TerminateThread类对象1号的线程体内容--->18
这是TerminateThread类对象1号的线程体内容--->19
这是TerminateThread类对象1号的线程体内容--->20
主线程内容-->42
主线程内容-->43
主线程内容-->44
主线程内容-->45
主线程内容-->46
主线程内容-->47
主线程内容-->48
主线程内容-->49
主线程内容-->50
主线程内容-->51
主线程内容-->52
主线程内容-->53
主线程内容-->54
主线程内容-->55
主线程内容-->56
主线程内容-->57
主线程内容-->58
主线程内容-->59
主线程内容-->60
主线程内容-->61
主线程内容-->62
主线程内容-->63
主线程内容-->64
主线程内容-->65
主线程内容-->66
主线程内容-->67
主线程内容-->68
主线程内容-->69
主线程内容-->70
主线程内容-->71
主线程内容-->72
主线程内容-->73
主线程内容-->74
主线程内容-->75
主线程内容-->76
主线程内容-->77
主线程内容-->78
主线程内容-->79
主线程内容-->80
主线程内容-->81
主线程内容-->82
主线程内容-->83
主线程内容-->84
主线程内容-->85
主线程内容-->86
主线程内容-->87
1号game over
主线程内容-->88
主线程内容-->89
这是TerminateThread类对象1号的线程体内容--->21
主线程内容-->90
主线程内容-->91
主线程内容-->92
主线程内容-->93
主线程内容-->94
主线程内容-->95
主线程内容-->96
主线程内容-->97
主线程内容-->98

 

MySQL——cost成本计算之MySQL如何选择使用索引(trace) 文章目录前言trace工具分析执行计划 前言 在之前博客中,根据测试案例,发现同样的sql语句,因为传入的条件值的不同,导致MySQL有时候选择使用索引,有时候又不适用索引。 如下所示sql的执行计划: EXPLAIN SELECT * FROM employees WHERE name > 'aaa'; EXPLAIN SELECT * FROM employees WHERE name > 'zzzz'; 在MySQL中,为什么会出现上述这种玄乎的现象呢? 本篇博客重点说明原因。 在说 阅读详情

相关推荐

先楫HPM6E00EVK EtherCAT从站配置与CIA402 8轴运动控制实战解析

本文详细解析了先楫HPM6E00EVK开发板的EtherCAT从站配置与CIA402 8轴运动控制实战。从环境准备、XML文件配置、代码移植到TwinCAT工程设置,提供了完整的移植指南,帮助开发者实现高效的多轴同步运动控制。

o5p6q的博客 415

线程的状态和启停

线程的状态和启停 状态 线程的状态分别为: new 在新建后的线程,状态就会变成new,比如 new Thread(()->{ System.out.println("i am print"); }); //或者实现runnable接口,其实Thread就实现了runnable接口 runnable 当调用了线程的.start()方法时,就处于待执行的状态 terminate 当线程执行完毕后,处于终止状态,可以根据 Thread.currentThread().isAlive() 来判断线程

512

SAR ADC和sigma delta ADC的区别

0、ADC基本概念 ADC,即analog to digital converter,模拟到数字的转换器,简称模数转换器。 为什么需要ADC?因为现实的世界中,电信号是连续的,例如心电信号,或者声音信号,这些连续的信号被称为“模拟信号”。 图1:心电信号 图2:声音信号 然而这种连续的信号是无法被计算机处理的,计算机只认识0和1组成的“数字信号“。ADC就充当了这样一个桥梁,将“模拟信号”转换为计算机能识别的“数字信号”。举个例子,当前的心电电压为1.2V(实际没有这么高),ADC可能会得

长河柱天的博客 2万+

Java终止线程的三种方法

使用标志位退出线程 使用stop方法强制终止线程 使用interrupt终止线程 1. 使用标志位退出线程 这种也是最常用的方法,就是定义一个boolean型的标志位,在线程的run方法中根据这个标志位是true还是false来判断是否退出,这种情况一般是将任务放在run方法中的一个while循环中执行的。 public class ThreadFlag extends Thread...

川峰的博客 1万+

Windows环境下IBSIMU的安装

本文主要介绍离子束仿真程序IBSIMU在Windows环境下的安装。

C_Tso的博客 2992

从IPv6到Tomcat:彻底解决127.0.0.1拒绝连接的完整指南

本文提供了从IPv6到Tomcat的全面指南,帮助开发者彻底解决127.0.0.1拒绝连接的问题。涵盖网络协议栈、服务配置、端口管理等多个层面的排查方法,特别针对Tomcat服务提供了专项解决方案,确保开发者能够快速定位并修复连接问题。

weixin_29207439的博客 471

Java线程终止状态

Java线程通过启动run执行线程内容。run执行过程,可能是正常结束,也可能是抛出异常。 通常检测线程的执行状态通过 循环检测Thread.isAlive()来判断线程的执行状态。。。可通过getState=TERMINATE判断线程结束。但无法区分正常还异常终止。 1.通过线程池管理线程 2.callable.返回退出状态 3.UncaughtExceptionHandler

foreverxie的专栏 313

SpringBoot3.X及SpringAi和jdk17以上版本集成MCP协议供大模型调用sse协议

MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 推出的开源协议,旨在实现大型语言模型(LLM)与外部数据源和工具的无缝集成,用来在大模型和数据源之间建立安全双向的链接。目标是成为 AI 领域的“HTTP 协议”,推动 LLM 应用的标准化和去中心化。本文主要讲解SpringBoot3.X版本和jdk17版本如何集成MCP协议 后续还有一个SpringBoot2.7和jdk1.8通过solon来实现@Service。

weixin_47247523的博客 788

JAVA中线程的6种状态

下面是jdk源码中关于java线程状态的源码。 public enum State { /** * Thread state for a thread which has not yet started. * 线程刚刚被创建,还没有开始。 */ NEW, /** * Thread state for a runnable thread. A thread in the...

liangbingbing123的博客 175

[案例四] 智能填写属性工具(支持装配组件还有建模实体属性的批量创建、编辑)

本次案例主要是对上次导出自动导出BOM的一个前处理,要想导出属性,首先的有属性。于是本着学习的态度进行制作,可能有些功能有点别扭(支持装配环境下组件属性的批量填写,支持建模环境下的实体(不包括装配组件实体)——为了减负我把其过滤掉了,一般没人会往装配体里添加进行建模吧,但是不免有奇葩,哈哈哈)。

weixin_47753171的博客 1980

验证方法、符合性方法与设计保证的关系

未来,随着适航标准和工程实践的不断演进,验证与符合性方法将持续优化,以应对日益复杂的系统设计需求。设计保证过程中的验证活动具有双重作用,既用于设计过程的质量控制和风险管理,又作为适航符合性方法的重要支持材料。在未来的航空电子系统开发中,进一步优化设计保证与验证活动的协同作用,将有助于应对日益复杂的工程挑战,推动航空安全技术的发展。为了全面理解这二者之间的关系,本章将系统说明设计保证过程中的验证活动如何既服务于设计保证,又作为符合性方法中的核心证明材料。最终,通过功能测试和环境测试验证硬件的实际性能。

qq_41854911的博客 554

JAVA线程(状态、终止、通信、封闭)

线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。 线程状态 线程几种状态线程的状态在java中有明确的定义,在java.lang.Thread.State中有6种。 New:线程被创建,未执行和运行的时候 Runnable:不代表线程在跑,两种:被cpu执行的线程,随时可以被cpu执行的状态。 Blocked:线程阻塞,处于synchronized同步代码块

数据工匠记 4130

2024 全国大学生新质生产力大赛 B:金融违规交易的大数据分析 问题四思路代码

问题四:请分析附件中所有的指标数据,选取合适的指标,建立“金融违规 洗钱交易的预测模型”,并选取合适的训练集和测试集,计算预测模型的准确率。 为了提前识别并预测金融违规洗钱的交易事件,请基于你们团队数据分析的结果, 分别给公安部门和银行机构提出你们的建议。

YOLO 375

Java基础之创建线程本质方法, 线程的状态, 如何终止线程

1. Thread和Runnable的区别 如果一个类继承Thread,则不适合资源共享。但是如果实现了Runable接口的话,则很容易的实现资源共享。 适合多个相同的程序代码的线程去共享同一个资源。 可以避免java中的单继承的局限性。 增加程序的健壮性,实现解耦操作,代码可以被多个线程共享,代码和线程独立。 线程池只能放入实现Runable或Callable类线程,不能直接放入继承Threa...

啊策策大数据社区 705

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java中线程优先级、线程的状态以及启动和终止线程

线程概念:现代操作系统调度的最小单元是线程,也叫轻量级进程(Light Weight Process),在一个进程中可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。处理器在这些线程上高速切换。 线程优先级 现代操作系统基本采用时分的形式调度运行的线程。线程分配到的时间片多少也就决定了使用处理器资源多少,而线程优先级就是决定线程需要多或少分配一些处理器资源的线程属性。 在Java线程中,通过一个整型成员变量priority来控制优先级,优先级范围从1~10,在线

... 382

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

高性能编程学习(第一章第一节:Java基础) 二、线程状态和线程终止

文章目录 线程状态 一、线程的6种状态 二、线程状态之间的关系 三、结合代码演示线程状态之间的变更 线程终止 一、不正确的程线终止 - Stop 二、正确的程线终止(1) - interrupt 三、正确的程线终止(2) - 标志位 线程状态 一、线程的6种状态 线程的状态在java.lang.Thread.State中有明确的定义 New:尚未启动的线程的线程状...

w873264631的博客 286

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Java 线程状态全解析:从创建到终止的生命周期

NEW和TERMINATED是线程的起点和终点RUNNABLE是线程 “活跃” 的核心状态是线程 “暂停” 的不同场景(锁竞争、无限等待、有限等待)握这些状态有助于调试并发问题(如线程卡死可能是WAITING状态未被唤醒),是编写高效并发程序的基础。

2201_75758787的博客 948

Java 线程的状态、终止与协作全解析

本篇文章主要讲 Java 中线程相关的知识。我会先说说前台线程和后台线程的区别,前台线程会影响整个程序的结束,必须都跑完程序才算结束;后台线程则不影响,主程序结束了它也跟着结束。我们自己创建的线程,包括 main 主线程,默认都是前台的,不过可以用 setDaemon 改成后台的。另外,还会讲到线程的生命周期,Thread 对象和系统线程不是一回事,可能对象还在,线程已经没了。还有线程怎么终止,比如用标志位,或者 interrupt 方法;

wxy963的博客 833

Java线程(二):线程特点、状态、终止开始控制

本文介绍了Java线程的命名、前台/后台线程特性、运行特点及终止方法。主要内容包括:1)通过Thread构造器或setName方法为线程命名,便于调试识别;2)前台线程会阻止进程结束,后台线程(守护线程)则不会,可通过setDaemon()设置;3)start()启动线程后会立即继续执行主线程,且一个线程只能start一次;4)通过标志位变量或interrupt()方法可提前终止线程执行。文章还演示了使用JDK工具查看线程状态的方法,帮助开发者更好地理解和控制多线程程序。

Lbycomputer的博客 430

JAVA多线程(一)------线程创建、运行状态和终止

将最近学习的JAVA多线程知识在这里进行总结和分享,以便以后查看。所有内容仅供参看,有不正确的地方欢迎指出。 一.基本概念 1.常见术语 多线程:指的是这个程序(一个进程)运行时产生了不止一个线程 并行:多个cpu实例或者多台机器同时执行一段处理逻辑 并发:通过cpu调度算法,不断切换时间片,执行线程.当一个线程处在运行状态时,其它线程处于挂起状态 线程安全:在并发情况下...

zhouhuahao的博客 476

一文看懂JAVA多线程核心:线程状态、终止、内存屏障与CPU缓存、线程间通信与线程封闭、线程池原理、如何确定合适数量的线程?

一文看懂JAVA多线程核心:线程状态、终止、内存屏障与CPU缓存、线程间通信与线程封闭、线程池原理、如何确定合适数量的线程?

无所不能的开花组❀ 1156

Java线程状态详解:从创建到终止的完整生命周期

本文深入解析Java线程的6种状态及其转换机制。线程状态包括NEW(新建)、RUNNABLE(可运行)、BLOCKED(阻塞)、WAITING(无限等待)、TIMED_WAITING(限期等待)和TERMINATED(终止)。文章详细阐述了每种状态的特点、触发条件和转换规则,并提供了示例代码说明。特别对比了sleep()与wait()方法的关键区别,以及synchronized锁对状态的影响。

2301_80017072的博客 1000

java 线程的停止状态值,Java中终止线程的方法详解

Java中终止线程的方式主要有三种:1、使用stop()方法,已被弃用。原因是:stop()是立即终止,会导致一些数据被到处理一部分就会被终止,而用户并不知道哪些数据被处理,哪些没有被处理,产生了不完整的“残疾”数据,不符合完整性,所以被废弃。So, forget it!2、使用volatile标志位看一个简单的例子:首先,实现一个Runnable接口,在其中定义volatile标志位,在run(...

weixin_42500720的博客 162

Java中的线程状态之终止

一个线程常见的声明周期: 创建线程,statr()方法之后,进入就绪状态,被cpu调度之后,进入运行状态,运行时,如果遭遇堵塞,进入堵塞状态,堵塞接触后,又重新 回到就绪状态,直到终止 线程的停止:1.内部执行完毕  2. 外部干涉(使用标识) package cpm.thread.creater; public class Demo1 { public static

张巍的博客 450

Java并发编程 一 线程介绍、创建线程的4种方式、线程常用方法、两阶段终止状态、线程的五种/六种状态

原文 一、线程与进程、并行并发、同步异步概念 1、进程与进程 进程: 资源分配的最小单位 进程是线程的容器, 一个进程中包含多个线程, 真正执行任务的是线程 线程: 资源调度的最小单位 进程 程序由指令和数据组成,但是这些 指令要运行,数据要读写,就必须将指令加载到cpu,数据加载至内存。在指令运行过程中还需要用到磁盘,网络等设备,进程就是用来加载指令,管理内存,管理IO的 当一个指令被运行,从磁盘加载这个程序的代码到内存,这时候就开启了一个进程 进程就可以视为程序的一个实例,大部分程序都可以

ss810540895的博客 369

Java学习day090 并发(二)(中断线程、线程状态(新创建线程、可运行线程、被阻塞线程和等待线程、被终止的线程))

使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识。 day090 并发(二)(中断线程、线程状态(新创建线程、可运行线程、被阻塞线程和等待线程、被终止的线程)) ...

Zzehao的博客 515
上一篇: 53_剑指offer_java_题目一_排序数组中数字出现次数
下一篇: 倒计时
Longtermevolution
博客等级 码龄9年 113粉丝 249原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值