一、公平锁
锁这个东西,锁住之后,如果有100个进程,是不是都要等这个锁解开呀,那么什么叫做公平锁呢,就是先来先到,比如A线程先来等,那就是当锁解开以后,A线程先来执行,有这么一个排队的流程。
二、非公平锁
不公平的锁通俗来说,就是所有线程嘎一块抢,锁一解开,谁抢到谁先执行,相当于,一锅饭所有人一起吃,一起抢肉的感觉。
那么java三种处理方式:同步代码块、同步方法都是非公平的锁,而Lock默认是非公平的
三、如何设置公平锁
同步代码块与同步方法都是非公平的锁,无法设置公平锁
但Lock显示锁可以在构造方法中填入true以此来设置公平锁
四、死锁概念
可以理解为,现在有两个人,一个叫张三,一个叫王五,要去买衣服,为了试衣服,同时进了A跟B两个试衣间,
此时张三觉得A试衣间好脏,想换到B试衣间去,但是他发现B试衣间是有人的锁住的状态,于是就在这里等B试衣间释放,
但王五觉得B试衣间好多水,想换到A试衣间,可他也发现A试衣间还有人,所以就在这里等A试衣间释放。
这个时候两个人都在等对方出来,这个时候就出现了死锁问题。