java并发
学习并发编程
悔建阿里杰克马
这个作者很懒,什么都没留下…
展开
-
java多线程- 互斥锁 自旋锁
如果一个资源会被不同的线程访问修改,那么我们把这个资源叫做临界资源(《操作系统》),那么对于该资源访问修改相关的代码就叫做临界区。引入互斥锁即解决多个线程之间共享同一个共享资源,这是多线程编程需要考虑的一个问题。 互斥锁 互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理。 任意时刻互斥锁的状态只有两种:开锁或闭锁。当有任务持有时,互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权。当该任务释放它时,该互斥锁被开锁,任务失去该互斥锁的所有权。当一个任务持有互斥锁时,其他任务将不能原创 2020-12-03 14:46:37 · 2281 阅读 · 0 评论 -
java多线程-公平锁和非公平锁
公平锁 指按照线程的请求的顺序来获取对象的锁 只有当前一个对象释放对象锁之后后面线程才能获取 否则就会等待 例如:Synchronized关键字 非公平锁 指不是按照线程的访问顺序来获取锁的,可能是优先级较高的线程先获取锁对象,非公平锁的优点在于吞吐量比公平锁要大,缺点在于如果一直有优先级高的线程获取锁对象,那么优先级低的对象就会一直出现饥饿状态,无法获取锁对象。 例如:在java的并发包里面ReenTrantLock,通过构造函数的boolean类型来进行指定是否是公平锁 ...原创 2020-07-15 11:04:12 · 328 阅读 · 1 评论