公平与非公平锁:锁Lock分为"公平锁"和"非公平锁",公平锁标识线程获取锁的顺序是按照线程加锁的顺序来分配的,即先来先得的FIFO先进先出顺序,而非公平锁就是一种获取锁的抢占机制,是随机获得锁的,和公平锁不一样的就是先来的不一定先得到锁,这个方式可能造成某些线程一直拿不到锁,结果就是不公平的了。
1.公平锁
package LockTest;
import java.util.concurrent.locks.ReentrantLock;
/**
* @Author LiBinquan
*/
public class Service1 {
private ReentrantLock lock;
public Service1(boolean isFair){
super();
lock = new ReentrantLock(isFair);
}
public void serviceMethod(){
try{
lock.lock();
System.out.println("ThreadName = "+Thread.currentThread().getName(