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

第12章 Java多线程机制

12.1 进程与线程

4种状态:新建、运行、中断和死亡。   (新建、运行、中断和死亡)

建立线程的两种方法:用Thread类或其子类。

线程新建后,必须调用 start () 方法使其进入就绪队列,才有机会获得 CPU 资源,不调用 start () 方法无法获得 CPU 资源

中断的4种原因:(1)JVM将CPU资源从当前线程切换给其他线程,使本线程让出CPU的使用权处于中断状态。(2)线程使用CPU资源期间,执行了sleep(int millsecond)方法,使当前线程进入休眠状态。(3)线程使用CPU资源期间,执行了wait()方法,使得当前线程进入等待状态。(4)线程使用CPU资源期间,执行某个操作进入阻塞状态,比如执行读/写操作引起阻塞。

死亡状态,不能再调用start()方法。run () 方法执行完意味着线程任务已完成,进入死亡状态,处于死亡状态的线程生命周期结束,无法再启动

isAlive () 方法用于判断线程是否存活,当线程执行完 run () 方法或者因异常终止,即进入死亡状态,此时该方法返回 false

一个线程的 run () 方法通常只执行一次,不能多次启动

12.2 Java中的线程

设置线程的两种方法:用Thread类或其子类。

在 Java 中,使用 setPrority(int grade)方法,默认情况下所有线程优先级是 5 级

多线程:Java使我们可以创建多个线程,在处理多线程问题时,我们必须注意这样一个问题:当两个或多个线程同时访问同一个变量,并且一个线程需要修改这个变量。我们应对这样的问题作出处理,否则可能发生混乱。

当一个线程使用的同步方法中用到某个变量,而此变量又需要其它线程修改后才能符合本线程的需要,那么可以在同步方法中使用wait()方法。使用wait方法可以中断方法的执行,使本线程等待,暂时让出CPU的使用权,并允许其它线程使用这个同步方法。其它线程如果在使用这个同步方法时不需要等待,那么它使用完这个同步方法的同时,应当用notifyAll()方法通知所有的由于使用这个同步方法而处于等待的线程结束等待。

当一个线程使用的同步方法中用到某个变量,而此变量又需要其它线程修改后才能符合本线程的需要,那么可以在同步方法中使用wait()方法。使用wait方法可以中断方法的执行,使本线程等待,暂时让出CPU的使用权,并允许其它线程使用这个同步方法。其它线程如果在使用这个同步方法时不需要等待,那么它使用完这个同步方法的同时,应当用notifyAll()方法通知所有的由于使用这个同步方法而处于等待的线程结束等待。

12.3 Thread类与线程的创建

12.4 线程的常用方法

12.5 线程同步

同步方法同一时刻只能被一个线程访问,其他线程需等待

12.6 协调同步的线程

12.7 线程联合

12.8 GUI线程

12.9 计时器线程

12.10 守护线程

http://www.lryc.cn/news/2379381.html

相关文章:

  • 区间带边权并查集,XY4060泄露的测试点
  • 【数据结构】1-4算法的空间复杂度
  • nt!ExRemoveHeadNBQueue 函数分析
  • OpenAI推出Codex — ChatGPT内置的软件工程Agents
  • AI日报 · 2025年5月15日|GPT-4.1 登陆 ChatGPT
  • W5500使用ioLibrary库创建TCP客户端
  • SQL练习(12/81)
  • 组态王|如何创建组态王工程?
  • mysql数据库-3(备份和恢复)
  • 估分啦~全国青少年信息素养大赛部分赛项已考完~图形化/算法创意实践
  • 【Linux服务器】-虚拟机安装(CentOS7.9)
  • 鸿蒙OSUniApp 制作简洁高效的标签云组件#三方框架 #Uniapp
  • 2025年渗透测试面试题总结-百度面经(题目+回答)
  • java集合相关的api-总结
  • 深入解析JVM字节码解释器执行流程(OpenJDK 17源码实现)
  • 分别用 语言模型雏形N-Gram 和 文本表示BoW词袋 来实现文本情绪分类
  • C#.NET 或 VB.NET Windows 窗体中的 DataGridView – 技巧、窍门和常见问题
  • PyTorch音频处理技术及应用研究:从特征提取到相似度分析
  • SHAP分析图的含义
  • VSTO(C#)Excel开发进阶2:操作图片 改变大小 滚动到可视区
  • 多用途商务,电子产品发布,科技架构,智能手表交互等发布PPT模版20套一组分享
  • Java正则表达式:从基础到高级应用全解析
  • WindowsPE文件格式入门11.资源表
  • C语言标准I/O与Linux系统调用的文件操作
  • 【MYSQL】笔记
  • 线程池核心线程永续机制:从源码到实战的深度解析
  • DS新论文解读(2)
  • html文件cdn一键下载并替换
  • react路由中Suspense的介绍
  • 【ROS2】 核心概念6——通信接口语法(Interfaces)