锁机制

作者: Mythqian | 来源:发表于2021-03-12 18:00 被阅读0次

1、死锁


1.png
2.png

2、活锁:多个线程一直在执行无意义的工作,消耗资源


3.png

3、悲观锁和乐观锁
(1)Synchornize 悲观锁:先锁住再执行业务操作
(2)CAS乐观锁:先执行业务操作再判断
4、自旋锁:CAS
(1)概念:利用现代处理器都支持的CAS指令,执行时间0.6ns
(2)流程:


4.png

(3)存在的问题:ABA问题,一个线程改动过值后又改回原值,另一个线程进行CAS无法感知!(增加一个版本号进行解决~),jdk提供两个类:①AtomicMarkableReference :标记共享变量有没有被改变过;②AtomicStampedReference :标记共享变量有没有被改变过,并且被改变过几次;
(4)局限:只能保证对一个共享变量进行原子操作(解决方法:AtomicReference )

相关文章

  • 数据库为什么需要锁机制?有哪些锁机制?

    数据库为什么需要锁机制?有哪些锁机制?

  • 锁机制

    锁机制

  • MySQL 锁

    MySQL的锁机制 不同的存储引擎支持不同的锁机制 MyISAM和MEMORY存储引擎采用的是表级锁(table-...

  • java Thread深入了解(四)

    概念介绍 悲观锁是指假设并发更新冲突会发生,所以不管冲突是否真的发生,都会使用锁机制。相对悲观锁而言,乐观锁机制采...

  • java Thread深入了解(四)

    概念介绍 悲观锁是指假设并发更新冲突会发生,所以不管冲突是否真的发生,都会使用锁机制。相对悲观锁而言,乐观锁机制采...

  • 锁机制

    基础知识之一:锁的类型 锁从宏观上分类,分为悲观锁与乐观锁。 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并...

  • 锁机制

    一、说说线程安全问题,什么是线程安全,如何保证线程安全 http://www.jasongj.com/java/t...

  • 锁机制

    ReentrantLock可重入锁:就是一个线程在获取了锁之后,再次去获取了同一个锁,这时候仅仅是把状态值进行累加...

  • 锁机制

    锁机制 Innodb是事务级数据库,支持事务,支持外键,rollback,mvcc(高并发:在readcommit...

  • 锁机制

    乐观锁 乐观锁( Optimistic Locking)其实是一种思想。相对悲观锁而言,乐观锁假设认为数据一般情况...

网友评论

      本文标题:锁机制

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