Java锁:公平锁、非公平锁、可重入锁(递归锁)、自旋锁、独占锁
1.公平锁和非公平锁:
公平锁:是指多个线程按照申请锁的顺序来获取锁,类似排队打饭,先来后到。
非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁在高并发的情况下,可能会造成优先级反转或者饥饿现象。
公平锁/非公平锁
并发包中ReentrantLock的创建可以指定构造函数的boolean类型来得到公平锁或非公平锁,默认是非公平锁。
两者区别:
公平锁,就是很公平,在并发环境中每个线程都在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程是等待队列的
原创
2020-05-20 00:01:36 ·
301 阅读 ·
0 评论