
Java高并发
文章平均质量分 83
Java高并发
首席令狐冲
做自己喜欢的事,享受命运的安排
展开
-
java多线程------synchronized
为了以示区分,这里将Object对象的监视锁叫作对象锁,将Class对象的监视锁叫作类锁。因为内置锁对象的Mark Word的结构会有所变化,Mark Word将会出现一个指向锁记录的指针,而不再存着无锁状态下的锁对象哈希码等信息,所以必须将这些信息暂存起来,供后面在锁释放时使用.Java内置锁是一个互斥锁,这就意味着最多只有一个线程能够获得该锁,当线程B尝试去获得线程A持有的内置锁时,线程B必须等待或者阻塞,直到线程A释放这个锁,如果线程A不释放这个锁,那么线程B将永远等待下去。轻量级锁的问题在哪里呢?原创 2025-05-07 15:28:40 · 1029 阅读 · 0 评论 -
java高并发------线程的六种状态
处于 TIMED_WAITING(限时等待)状态的线程不会被分配 CPU 时间片,如果指定时间之内没有被唤醒,限时等待的线程会被系统自动唤醒,进入就绪状态。处于 WAITING(无限期等待)状态的线程不会被分配 CPU 时间片,需要被其他线程显式地唤醒,才会进入就绪状态。等待获取一个锁,而该锁被其他线程持有,则该线程进入阻塞状态。当其他线程释放了该锁,并且线程调度器允许该线程持有该锁时,该线程退出阻塞状态。线程调度程序从就绪状态的线程中选择一个线程,被选中的线程状态将变成执行状态。原创 2025-04-05 19:42:42 · 1041 阅读 · 0 评论 -
java高并发------守护线程Daemon Thread
因为在java web 中,比如用springboot 创建的web项目,springboot和其内嵌web服务器(比如tomcat)默认使用都是用户线程,他们的生命周期与jvm是强绑定的,也就是说springboot项目中 若中止所有用户线程,其整个jvm进程就会中止,守护线程又是由jvm管理的,所以springboot项目使用守护线程是没有必要使用,用线程池更好创建用户线程能更方便管理。守护线程是后台线程,主要服务于用户线程,当所有的用户线程结束时,守护线程也会自动结束,JVM会随之退出。原创 2025-04-05 19:05:48 · 321 阅读 · 0 评论 -
java高并发------interrupt相关
说到这里,其实interrupt() 相关的方法就类似于多个线程之间去检查一个boolean值,自己也可以使用 volatile boolean = false 这种变量去代替interrupted 去通信。volatile boolean 更灵活优先使用isInterrupted()结合两者,通过 volatile boolean 管理自定义状态,通过isInterrupted()处理阻塞 中断。原创 2025-03-30 00:16:42 · 1044 阅读 · 0 评论 -
java高并发------共享模型------示例练习
juc示例练习原创 2024-05-13 11:25:38 · 285 阅读 · 0 评论 -
java高并发------基础概念
juc原创 2024-05-02 19:57:29 · 715 阅读 · 0 评论