文章摘要:java中常见的锁有哪些 java中常用的锁有哪些
java中常见的锁有:1.乐观锁;2.悲观锁;3.自旋锁;4.偏向锁;5.公平锁; java中常见的锁有以下几 […]
java中常见的锁有:1.乐观锁;2.悲观锁;3.自旋锁;4.偏向锁;5.公平锁;
java中常见的锁有以下几种
1.乐观锁
java中乐观锁是一种乐观思想,总认为资源和数据不会被修改,并不会对数据进行上锁,但进行写入操作的时会判断数据是否被修改。
2.悲观锁
java中悲观锁是一种悲观思想,总认为会出现最坏的情况,会在持有数据的时将资源或数据锁住,导致其他线程需要请求资源时会造成阻塞。
3.自旋锁
java中自旋锁是指当一个线程在获取锁时,若锁已被其它线程获取,该线程将会循环等待,直到获取到锁才会退出循环。
4.偏向锁
java中偏向锁是指一段同步代码一直被一个线程访问,那么该线程会自动获取锁,从而降低获取锁的代价。
5.公平锁
java中公平锁是指多个线程按照申请锁的顺序来获取锁,只有线程进入队列排队,且队列中的第一个线程才可以获得锁。