美文网首页
Java中的一些锁

Java中的一些锁

作者: 释_远 | 来源:发表于2017-08-29 15:22 被阅读0次

概念: 我们知道有活锁 死锁,活锁里面有悲观锁和乐观锁

1.悲观锁,我的理解是两个男孩张三和李四,在约同一个女孩恋爱,每次都是张三约成功了,李四不成功,所有李四有点悲催,他就是一个悲观锁,

对于程序来说同一个资源,两个线程去占用,但是没有都是一个线程对资源占用,另一个无法占用,Synchronized。

2.乐观锁,我的理解是两个男孩张三和李四,在约同一个女孩恋爱,都可以约到,但是女孩同时只能约一个,只能在一个约完了另一个才可以约。

对于程序来说同一个资源,两个线程去占用,一次只能是一个线程去占用资源,在Java中,CAS是乐观锁的,但是为了防止ABA问题,又加了时间版本来防止ABA问题。

3.死锁 我的理解是两个男孩张三和李四,在约同一个女孩恋爱,但是女孩答应了两个人,于是两个人开车来接,可是在十字路口,两个人你不让我,我不让你,最后都约不到。

锁会带来CUP上下文的切换,影响效率。

    在Java中,每个对象都有一个mark标记,

图片来源:ifeve.com/java-synchronized/%E8%BD%BB%E9%87%8F%E7%BA%A7%E9%94%81/

一些锁的文章

对Java 自旋锁,偏亮锁的详细描述

相关文章

网友评论

      本文标题:Java中的一些锁

      本文链接:https://www.haomeiwen.com/subject/hzpodxtx.html