0 0

java中CAS和乐观锁之间存在什么联系?0

我知道CAS就是旧值A和新值B判断的一个过程,
乐观锁是版本号来进行判断的。
之前看过一篇博客说乐观锁是CAS实现的,我一直很疑惑,两者具体是怎样联系的?
2014年4月05日 09:01

2个答案 按时间排序 按投票排序

0 0

乐观锁就是说先去干如果没有其它线程争用共享资源,那么它就成功了,如果有,那么它就需要一些补偿措施,比如失败,比如重试一次。但是它需要保证运行和检查是原子操作,是需要指令集的支持的,常用的这种指令有比较并交换(cas),检查并增加等等吧,具体的你可以网上查查有哪些这种指令。

2014年4月14日 08:40
0 0

cas 乐观锁每次不锁定整个线程,在操作之前进行判断。悲观锁独占整个线程,不操作完成也不让别的线程操作。

2014年4月06日 22:17

相关推荐

    java乐观锁

    下面我们将深入探讨Java中乐观锁的原理、实现方式以及其在实际开发中的应用。 乐观锁的核心思想是:在读取数据时不会加锁,而是在更新数据时才会检查在此期间是否有其他线程修改了该数据。如果在检查时发现有其他...

    Java并发篇乐观锁,悲观锁,自旋锁

    本文主要讨论了四种锁类型:乐观锁、悲观锁、自旋锁以及Java中的synchronized同步锁,并深入解析了synchronized锁的内部机制,包括其核心组件、实现方式以及锁的状态。 1. **乐观锁**:乐观锁假设在多线程环境下,...

    彻底理解Java中的各种锁.pdf

    在Java中,乐观锁通常是通过CAS(Compare-And-Swap)实现,例如Java中的AtomicInteger类就使用了这种方式。悲观锁则假设最坏的情况,即每次读取数据都认为会被其他线程修改,所以总是对数据进行加锁。synchronized...

    深入讲解我们说的CAS自旋锁到底是什么

    CAS(Compare and Swap)是实现自旋锁或乐观锁的核心操作,它的出现是为了解决原子操作的问题。在多线程环境下,原子操作是保证线程安全的重要手段。CAS操作的实现很简单,就是用一个预期的值和内存值进行比较,如果...

    JAVA CAS实现原理与使用.docx

    Java并发编程中,CAS(Compare and Swap,比较并交换)是一种无锁算法,它提供了一种在多线程环境下更新共享变量的方式,避免了传统锁机制带来的诸多问题。在JDK 5之前,Java主要依赖`synchronized`关键字来保证线程...

    乐观锁测试代码

    在Java开发中,乐观锁常见的实现方式有以下几种: 1. **版本号机制**:每个记录都有一个版本号字段,每次更新时都会将版本号加一。当尝试更新时,如果读取到的版本号与数据库中的版本号不一致,就认为数据已被其他...

    面试必备之乐观锁与悲观锁.pdf

    CAS(Compare and Swap)算法是一种常用的乐观锁实现方式,尤其适用于Java语言中。CAS涉及三个参数:需要读写的内存值V、进行比较的值A以及拟写入的新值B。只有当内存值V等于A时,CAS才会用B更新V的值。如果V的值...

    乐观锁的一种实现方式-CAS编程开发技术共4页.pdf

    CAS(Compare and Swap,比较并交换)是乐观锁的一种常见实现机制,尤其在多线程和并发编程中被广泛应用。它是一个原子操作,由硬件支持,可以无锁地完成对内存位置的更新。CAS包含三个参数:旧值、预期值和新值。当...

    JAVA架构面试专题_面试必备之乐观锁与悲观锁.pdf

    在Java中,`java.util.concurrent.atomic`包下的原子变量类如AtomicInteger、AtomicLong等,使用了CAS算法来实现乐观锁。 **版本号机制**是乐观锁的一种实现方式,通过添加一个版本号字段来跟踪数据的修改。当读取...

    2022 最全 Java 面试笔试题汇总

    * 乐观锁以及悲观锁的区别是什么?mysql 中索引的类型有哪些? * 事务的四大特性是什么?mysql 的事务隔离级别有哪些? * 聚簇索引和非聚簇索引有什么区别?什么情况用聚集索引? 本文档涵盖了 Java 面试中的大部分...

    Java中的锁分类与使用.docx

    Java中,`java.util.concurrent.atomic`包下的原子变量类如AtomicInteger、AtomicLong等利用CAS(Compare and Swap)算法实现了乐观锁。 - **悲观锁**假设并发环境下数据频繁被修改,因此在读取时就会上锁,确保...

    Java并发问题之乐观锁与悲观锁

    为了解决这些问题,Java 提供了多种锁机制,其中最常见的就是乐观锁和悲观锁。 悲观锁(Pessimistic Locking)是一种传统的锁机制,它总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的...

    面试必备之乐观锁与悲观锁

    【描述】:“面试必备之乐观锁与悲观锁.pdf”涉及的是并发控制中的两种重要锁机制——悲观锁和乐观锁,它们是多线程环境下确保数据一致性的重要手段。 【标签】:“求职面试 多线程” 【正文】: 悲观锁和乐观锁...

    全面了解Java中的CAS机制

    CAS(Compare and Swap)机制是Java中的一种乐观锁思想的应用,用于解决多线程并发访问共享资源的问题。CAS机制的核心思想是,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。...

    Java 多线程与并发(3-26)-Java 并发 - Java中所有的锁.pdf

    在Java中,常见的乐观锁实现是无锁编程,如使用原子类(AtomicInteger、AtomicLong等)中的CAS(Compare and Swap)算法。悲观锁则假设在读取数据时会有其他线程修改,所以在读取时即加锁,如`synchronized`关键字和...

    面试必备之乐观锁与悲观锁.docx

    悲观锁和乐观锁都是多线程编程中常用的锁机制,它们各有优缺点,选择哪种锁机制取决于实际场景的需求。在写操作比较频繁的场景下,悲观锁可能是更好的选择,而在读操作比较频繁的场景下,乐观锁可能是更好的选择。

    深入分析Java并发编程之CAS

    在Java并发编程中,CAS(Compare and Swap)是一种无锁算法,用于在多线程环境中实现对共享变量的原子性更新。相比于传统的锁机制,如`synchronized`和`Lock`,CAS具有更低的开销,因为它避免了线程阻塞。本文将深入...

Global site tag (gtag.js) - Google Analytics