线程相关

[复制链接]
发表于 2024-11-24 15:01:01 | 显示全部楼层 |阅读模式

线程核心原理

 线程的调度与时间片
 线程的调度模型目前主要分为两种:分时调度模型和抢占式调度模型。
分时调度模型:系统平均分配CPU的时间片,所有线程轮流占用CPU,即在时间片调度的分配上所有线程“人人平等”。
)抢占式调度模型:系统按照线程优先级分配CPU时间片。优先级高的线程优先分配CPU时间片,如果所有就绪线程的优先级相同,那么会随机选择一个,优先级高的线程获取的CPU时间片相对多一些。
由于目前大部分操作系统都是使用抢占式调度模型进行线程调度,Java的线程管理和调度是委托给操作系统完成的,与之相对应,Java的线程调度也是使用抢占式调度模型,因此Java的线程都有优先级

线程的优先级

在Thread类中有一个实例属性和两个实例方法,专门用于进行线程优先级相关的操作。与线程优先级相关的成员属性为:
private int priority;//该属性保存一个Thread实例的优先级,即1~10的值

 线程的生命周期

image.png

image.png

image.png

线程的基本操作

Java线程的常用操作基本上都定义在Thread类中,包括一些重要的静态方法和线程实例方法。

线程名称的设置和获取

线程的sleep操作

线程的interrupt操作

一个线程什么时候可以退出呢?当然只有线程自己才能知道。所以,这里介绍一下Thread的interrupt()方法,此方法本质不是用来中断一个线程,而是将线程设置为中断状态。

image.png

image.png

线程的join操作

image.png

image.png

image.png

线程的daemon操作

image.png

image.png

 线程状态总结

image.png

image.png

线程池

image.png

image.png

image.png

image.png

拒绝策略

image.png

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

GMT+8, 2025-9-7 23:51 , Processed in 0.094352 second(s), 36 queries Archiver|手机版|小黑屋|Attic ( 京ICP备2020048627号 )

快速回复 返回顶部 返回列表