当前位置: 首页 > news >正文

Java并发编程8--线程

1.什么是线程?

现代操作系统调度的最小单元是线程,也叫轻量级进程(Light Weight Process),在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。

2. 线程的状态

线程在自身的生命周期中,并不是固定地处于某个状态,而是随着代码的执行在不同的状态之间进行切换

 

线程创建之后,调用start()方法开始运行。当线程执行wait()方法之后,线程进入等待状态。进入等待状态的线程需要依靠其他线程的通知才能够返回到运行状态,而超时等待状态相当于在等待状态的基础上增加了超时限制,也就是超时时间到达时将会返回到运行状态。当线程调用同步方法时,在没有获取到锁的情况下,线程将会进入到阻塞状态。线程在执行Runnable的run()方法之后将会进入到终止状态。

3.启动和终止线程

通过调用线程的start()方法进行启动,随着run()方法的执行完毕,线程也随之终止
构造线程:在运行线程之前首先要构造一个线程对象,线程对象在构造的时候需要提供线程所需要
的属性,如线程所属的线程组、线程优先级、是否是Daemon线程等信息。

启动线程:线程对象在初始化完成之后,调用start()方法就可以启动这个线程。线程start()方法的

含义是:当前线程同步告知Java虚拟机,只要线程规划器空闲,应立即启动调用start()方法的线

程。

4.中断

中断的定义

中断是线程的一个标识位属性,用于指示一个运行中的线程是否被其他线程执行了中断操作。可以将其形象地理解为其他线程向该线程发出的一个 “信号”,并非直接强制终止线程。

中断操作

其他线程可通过调用目标线程的 interrupt() 方法来对其进行中断操作。

线程对中断的响应

线程可通过以下两种方式检查自身是否被中断并做出响应:

  1. isInterrupted() 方法:这是一个实例方法,用于判断线程是否被中断,调用该方法不会改变线程的中断标识位。
  2. Thread.interrupted() 方法:这是一个静态方法,用于检查当前线程的中断标识位,并在检查后将中断标识位复位(即设置为 false)。

终结状态线程的中断情况

若线程已处于终结状态(如 run() 方法执行完毕),即便该线程在终结前被中断过,调用该线程对象的 isInterrupted() 方法时仍会返回 false

抛出 InterruptedException 方法与中断标识位的关系

Java API 中许多声明抛出 InterruptedException 的方法(如 Thread.sleep(long millis)),在抛出该异常之前,Java 虚拟机会先清除线程的中断标识位,然后再抛出 InterruptedException。此时调用 isInterrupted() 方法会返回 false

相关文章:

  • React + TypeScript+ Vite 配置路径别名和vscode智能路径提示
  • AI时代:前端开发的职业发展路径拓宽
  • vsan数据恢复—vsan缓存盘故障导致虚拟磁盘文件丢失的数据恢复案例
  • 在线考试系统(代码+数据库+LW)
  • ubuntu24基于虚拟机无法从主机拖拽文件夹
  • React通用登录/注销功能实现方案(基于shadcn/ui)
  • Android 虚拟机与ClassLoader类加载笔记
  • 【工具插件类教学】实现运行时2D物体交互的利器Runtime2DTransformInteractor
  • 解压rar格式的软件有哪些?8种方法(Win/Mac/手机/网页端)
  • 新型基于Go语言的恶意软件利用Telegram作为C2通信渠道
  • Postman接口测试的cookie,token,session....鉴权
  • PyCharm 中的 %reset -f 功能:一键重置控制台变量
  • 2024 年 CSDN 博客之星年度评选:技术创作与影响力的碰撞(统计时间2025-02-17 11:06:06)
  • seata集成nacos
  • 基数排序【C语言】
  • 一.数据治理理论架构
  • Copilot Next Edit Suggestions(预览版)
  • 2025年-G4--lc79--Best Time to Buy and Sell Stock(java版)
  • 基于机器学习的多浮埋层 LDMOS 建模与击穿电压优化
  • 【复现DeepSeek-R1之Open R1实战】系列4:SFT和GRPO源码逐行深度解析(上)(3万字长文,从零开始到入门,包含详细的拓展基础知识)
  • 无锡网站建设上海韵茵/seo服务外包客服
  • 模拟wordpress/seo推广公司排名
  • 自己做网站系统教程/广州百度快速优化排名
  • 百度云主机做网站/热点新闻
  • 苏州360推广网站建设/线上宣传渠道
  • 做网站域名费一般多少钱/抖音代运营公司