Fork me on GitHub
摘要: 在学习或者使用Java的过程中进程会遇到各种各样的锁的概念:公平锁、非公平锁、自旋锁、可重入锁、偏向锁、轻量级锁、重量级锁、读写锁、互斥锁、死锁、活锁等,本文将简概的介绍一下各种锁。 公平锁和非公平锁 公平锁是指多个线程在等待同一个锁时,必须按照申请锁的先后顺序来一次获得锁。 公平锁的好处是等待锁的 阅读全文
posted @ 2018-09-19 14:29 JackpotHan 阅读(250) 评论(0) 推荐(1) 编辑
摘要: 上一章已经提到“如果一个进程被多次回滚,迟迟不能占用必需的系统资源,可能会导致进程饥饿”,本文我们详细的介绍一下“饥饿”和“公平”。 Java中导致饥饿的原因 在Java中,下面三个常见的原因会导致线程饥饿: 高优先级线程吞噬所有的低优先级线程的CPU时间 你能为每个线程设置独自的线程优先级,优先级 阅读全文
posted @ 2018-09-19 11:41 JackpotHan 阅读(900) 评论(0) 推荐(1) 编辑
摘要: 简介 当两个以上的运算单元,双方都在等待对方停止运行,以获取系统资源,但是没有一方提前退出时,就称为死锁。在多任务操作系统中,操作系统为了协调不同进程,能否获取系统资源时,为了让系统运作,必须要解决这个问题。 例如,如果线程1锁住了A,然后尝试对B进行加锁,同时线程2已经锁住了B,接着尝试对A进行加 阅读全文
posted @ 2018-09-19 10:32 JackpotHan 阅读(346) 评论(0) 推荐(0) 编辑