【JavaEE】多线程之Thread类

news2024/10/7 12:29:04

一、Thread类常见方法与字段

1、构造方法

构造方法说明
Thread()不带参数的构造方法
Thread(String name)可以在构造时传入线程的名字
Thread(Runnable run)传入Runnable,是创建线程的方法之一
Thread(Runnable run,String name)传入线程工作并给线程起名

2、常见属性

1.ID

获取方法getID,给Thread对象安排的ID,与操作系统内核里的PCB里的pid不同,不同环境里的ID作用不同

2.name

获取方法getName,即线程的名字

3.state

获取方法getState,用于描述线程的状态

4.priority

获取方法getPriority,描述线程的优先级

5.daemon

获取方法getDaemon,用于判断线程是否是守护线程(是否是后台线程),我们默认创建的线程是一个前台线程,main线程就是一个前台线程,前台线程会阻塞进程的退出,而后台进程不会阻止进程退出,一个进程里只要有一个前台线程,进程就不会挂掉

6.alive

获取方法isAlive,Thread对象与内核里创建的线程一一对应,但是生命周期不同,当内核里的线程执行完了也就是run方法执行完了,此时内核里的线程就销毁了,但是Thread对象还在,这个方法用于判断内核里的线程是否存在

7.interrupt

获取方法isInterrupt,主要用于判断线程是否中断

3、线程的启动-start

当一个线程调用start方法才是真正的在内核里创建PCB,Thread实例调用start方法是创建线程,这个方法被native修饰,底层是C++实现的,而调用run方法则是在主线程单纯调用了run方法,并没有创建线程

4、线程的中断

线程中断的本质是让线程尽快的执行完,并不是强制将线程结束,线程中断的方法主要有设置停止的标志位,这个标志位可以自己设置,也可以使用Thread自带的标志位

设置标志位

使用Thread自带的标志位

此时要主要如果线程处于运行状态,设置标志位后会正常中断

如果线程处于阻塞状态,此时设置标志位会触发异常,sleep等会被提前唤醒,线程只是打印日志并不是中断,此时只需在catch里加入break即可

5、线程的等待 

可以通过join方法控制线程执行的先后顺序

6、线程的休眠

可以调用sleep方法使线程挂起休眠,该线程此时从就绪队列被移到阻塞队列,在就绪队列里的线程才能被系统进行调度

二、线程的状态

在Java里有专门用于描述线程状态的词

1、线程开始于结束

NEW:Thread对象创建了,但是没有在内核创建PCB

TERMINATEd:内核里的PCB已经销毁,但是Thread对象还在

2、就绪状态

RUNNABLE:线程就绪状态,正在CPU里运行

3、阻塞状态

TIMED_WAITING:按一定时间阻塞,一般调用sleep

WAITING:特殊阻塞等待,使用wait方法

BLOCKED:等待锁的阻塞状态

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/101870.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JaveWeb框架(一):Web入门,Http的请求和响应,https介绍,Web实战自定义服务器

Servlet入门 MVC实战项目 仓储管理系统JavaWeb入门介绍Http协议Http请求数据格式Http响应数据格式Web实战Demo:自定义服务器对比Https协议总结Redis章节复习已经过去,新的章节JavaWeb开始了,这个章节中将会回顾JavaWeb实战项目 仓储管理 代码…

机器人开发--电机中的电流环、速度环、位置环

机器人开发--电机中的电流环、速度环、位置环电流环、速度环、位置环1 三环原理1.1 电流环1.2 速度环1.3 位置环2 各环与PID控制2.1 电流环重点在 PID(比例、积分和微分)2.2 速度环重点在 PI(比例和积分)2.3 位置环重点在 P&#…

基于JAVA的企业部门报销管理信息系统的设计与实现

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 系统部分主要分为以下几个模块:公告类型,公告信息,部门信息,员工信 息&a…

手写Spring9(实现FactoryBean、对象作用域)

文章目录前言目标设计项目结构一、实现1、Bean的作用范围定义和xml解析2、创建和修改对象时候判断单例和原型模式3、定义 FactoryBean 接口4、实现一个 FactoryBean 注册服务5、扩展 AbstractBeanFactory 创建对象逻辑二、测试1、事先准备2、定义 FactoryBean 对象3、配置文件4…

Win32多线程调用gdal库接口

作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> 效果图和程序说明 效果图如下:   这个程序是基于MFC的GUI程序,用于给指定的文件夹批量创建金字塔。   效果图如下:   这个程序是基于Win32 API的GUI程序,用于给指定的文件创…

期末前端web大作业——动漫客栈响应式bootstarp(7页) 排版整洁,内容丰富,主题鲜明

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

R语言用线性回归模型预测空气质量臭氧数据

尽管线性模型是最简单的机器学习技术之一,但它们仍然是进行预测的强大工具。 最近我们被客户要求撰写关于线性回归模型的研究报告,包括一些图形和统计输出。 这尤其是由于线性模型特别容易解释这一事实。在这里,我将讨论使用空气质量数据集…

Python学习基础笔记五十四——多继承

多继承中,我们子类对象调用的一个方法,默认是就近原则,找的顺序是什么? 在经典类中,是深度优先; 在新式类中,是广度优先; Python2.7是经典类和新式类共存,新式类要继承…

领域模型设计模式

前言: 领域是一个组织所做的事情以及其包含的一切,通俗地说,就是组织的业务范围和做事情的方式,也是软件开发的目标范围。比如说淘宝的电商业务,C2C就是电子商务的领域,领域驱动设计就是从领域出发&#x…

安装VS code

五 安装VS Code Visual Studio Code,简称VS Code,是一种简化且高效的代码编辑器,同时支持诸如调试,任务执行和版本管理之类的开发操作。它的目标是提供一种快速的编码编译调试工具。优势: 支持多种语言的编写&#xf…

【大数据处理技术】「#1」本地数据集上传到数据仓库Hive

文章目录实验数据集下载下载实验数据集建立一个用于运行本案例的目录dbtaobao数据集的预处理删除文件第一行记录,即字段名称获取数据集中双11的前100000条数据导入数据仓库实验数据集下载 下载实验数据集 data_format.zip数据集用户行为日志user_log.csv&#xff…

jsp+ssm计算机毕业设计房屋租赁系统【附源码】

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JSPSSM mybatis Maven等等组成,B/S模式 Mave…

node 使用 pm2 日志管理及使用 pm2-logrotate 进行日志分割

目录 1. 需求背景 2. 什么是 pm2-logrotate ? 3. 查看 pm2 自带的日志管理 4. 安装 pm2-logrotate 5. 查看配置指令 6. pm2-logrotate 具体配置说明 7. 如何设置这些值? 8. 停止 pm2-logrotate 服务 9. 补充:pm2 常用命令 1. 需求…

Java学习笔记 --- MySQL-函数

一、合计/统计函数 count Count返回行的总数 SELECT COUNT(*) 列名 FROM table_name WHERE where_definition # 演示 mysql 的统计函数的使用 -- 统计一个班级共有多少学生? SELECT COUNT(*) FROM student -- 统计数学成绩大于90的学生有多少个 SELECT COUNT(*) FR…

Linux——vim的使用

实验5 vim的使用 一、两种模式: 命令行模式和编辑模式(前者还有底行模式,命令行模式输入:就是底行模式) 切换方法:进入vim后默认在命令模式,可以通过输入a后者i进入编辑模式,或者…

SQL学习day3

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 高级过滤Q1、检索供应商名称Q2、检索并列出已订购产品的清单(稍难)Q3、返回所有价格在 3美元到 6美元之间的产品的名称和价格总结Q1、检索供应商名称 编写 SQL 语…

2022全年度吸尘器十大热门品牌销量榜单

近年来,随着社会经济的发展及人们生活水平的提升,吸尘器的市场需求得到不断地释放,行业规模也在不断扩大。但由于起步较晚,居民的消费能力尚未得到完全释放,目前我国吸尘器市场的渗透率还较低。 根据鲸参谋平台的数据统…

初识Go语言

Go是一种静态强类型、编译型、并发型语言。 一、Go语言的设计思维 尽可能少的方式去处理事情,减少选择的烦恼。 go的特点: 仅有25个关键字,简洁的语法内置垃圾回收器,大大降低程序员管理内存的负担去除隐式类型转换、去除指针…

UNIAPP实战项目笔记56 注册时验证手机号是否存在

UNIAPP实战项目笔记56 注册时验证手机号是否存在 注册时候需要拦截并验证登录 通过验证的直接跳转,未通过验证的提示手机号已存在 实际案例图片 后端接口文件 index.js var express require(express); var router express.Router(); var connection require(../db/sql.js);…

成端/接续功能使用说明

在nVisual系统中,接续/成端功能可以高效、准确、清晰的查看熔纤盒内的光纤连接情况。今天小编来给大家介绍一下成端和接续功能的使用。 一、成端 1. 功能入口 成端功能的入口有两种方式,第一个是鼠标右击选中线缆,出现连线右键菜单&#xf…