1.公平锁:线程获取锁的顺序是按照他们申请锁的顺序来的
2.非公平锁:线程获取锁的顺序不是按照他们申请锁的顺序来的
3.可重入锁(递归锁):线程可以得到同一把锁的代码
举个例子:两个方法,AandB,都被锁住了,但是在方法A中有调用B方法,那么可以理解A和B方法用的是同一把锁,A可以访问B方法。
3.自旋锁:A和B两个线程,A正在运行,B不会阻塞而是以自旋的方式时不时去访问一下A是否完成。
优点:减少线程切换上下文的资源浪费
缺点:1占用cpu大量资源;2如果A一直运行,B就会一直自旋,会引发大问题。
4.独占锁(写锁)/共享锁(读锁)/读写锁:见名知意
java各种锁
最新推荐文章于 2024-11-27 20:06:01 发布