`
huangyongxing310
  • 浏览: 483694 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Java CAS原理

    博客分类:
  • Java
阅读更多
参考原文:http://www.cnblogs.com/lintong/p/4373723.html


CSA:Compare And Swap

简单介绍一下这个指令的操作过程:首先,CPU 会将内存中将要被更改的数据与期望的值做比较。然后,当这两个值相等时,CPU 才会将内存中的数值替换为新的值。否则便不做操作。最后,CPU 会将旧的数值返回。这一系列的操作是原子的。它们虽然看似复杂,但却是 Java 5 并发机制优于原有锁机制的根本。简单来说,CAS 的含义是“我认为原有的值应该是什么,如果是,则将原有的值更新为新值,否则不做修改,并告诉我原来的值是多少”。

简单的来说,CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则返回V。

这是一种乐观锁的思路,它相信在它修改之前,没有其它线程去修改它;而Synchronized是一种悲观锁,它认为在它修改之前,一定会有其它线程去修改它,悲观锁效率很低。
分享到:
评论

相关推荐

    Java CAS原理深度分析

    Java CAS原理深度分析

    Java CAS 原理分析

    Java CAS 原理分析整理...Java CAS 原理分析整理...Java CAS 原理分析整理...Java CAS 原理分析整理...Java CAS 原理分析整理...Java CAS 原理分析整理...

    简单了解JavaCAS的相关知识原理

    Java CAS相关知识原理 Java CAS(Compare-And-Swap)是Java并发编程中的一种常用的技术,它通过比较和交换的方式来实现线程安全。下面是Java CAS相关知识原理的详细介绍。 什么是JMM JMM(Java Memory Model)是...

    JAVA CAS深度分析

    JAVA CAS 深度分析 JAVA CAS(Compare And Swap)是一种原子操作,用于在多线程环境中实现同步机制。CAS 通过将内存值 V、旧的预期值 A 和要修改的新值 B 进行比较,如果预期值 A 和内存值 V 相同时,将内存值 V ...

    cas java cas java 实例

    下面我们将详细探讨CAS的核心概念、工作原理以及如何在Java环境中实现和使用CAS。 1. CAS核心概念: - 服务(Service):在CAS术语中,服务是指请求验证的Web应用。当用户尝试访问受保护的资源时,会被重定向到CAS...

    java-cas客户端client安装包

    其工作原理是,用户在访问受保护的应用系统时,会被重定向到CAS服务器进行身份验证,验证成功后,CAS服务器会返回一个票证(Ticket),用户再携带此票证返回应用系统,应用系统通过验证票证确认用户身份。...

    java-cas单点登录服务端

    CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,研究如何采用 CAS 实现轻量级单点登录解决方案。 CAS 是 Yale 大学发起的...

    JAVA CAS实现原理与使用.docx

    在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁)。 锁机制存在以下问题: (1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。 (2...

    CAS原理 java 并发

    **标题:“CAS原理与Java并发”** 在Java并发编程中,CAS(Compare and Swap,比较并交换)是一种无锁算法,广泛应用于多线程环境下的数据同步。它通过硬件指令来实现原子操作,提升了并发性能,同时避免了锁带来的...

    Java CAS底层实现原理实例详解

    "Java CAS底层实现原理实例详解" Java CAS(Compare And Swap)是一种机制,用于解决多线程并行情况下使用锁造成性能损耗的问题。CAS 的概念是,比较并交换,解决多线程并行情况下使用锁造成性能损耗的一种机制。...

    Yale CAS SSO JAVA Client

    整合Yale CAS SSO JAVA Client到Java应用中,开发者需要理解CAS的工作原理,包括Ticket Granting Ticket(TGT)和Service Ticket的概念,以及如何在应用程序中配置和调用CAS客户端库。同时,为了保证安全性,需要...

    CAS.rar_CAS_java CAS_sso_单点登陆 java_登陆

    首先,"CAS.rar"是一个包含所有相关资源的压缩文件,其中"cas-server-3.0.6.zip"是CAS服务器的源码和部署包,而"cas-client-java-2.1.1.zip"则是CAS客户端的Java实现。这两个组件是实现SSO的核心部分,服务器负责...

    Java进阶SSO单点登录技术CAS-快速上手与原理探究视频教程

    本课程主要通过CAS来实现SSO,本教程会从最基本的基础知识讲起,由浅入深再到实战,完成多应用的单点登录功能。 本课程内容如下: 1、 什么是SSO和CAS 2、 CAS Server服务端和客户端的搭建和配置 3、 单点登录和单...

    cas-server-client-java-3.0.0.zip

    2. **CAS协议的理解**:了解CAS协议的工作原理,包括票证验证(Ticket Validation Protocol)、服务票证(Service Ticket)和代理票证(Proxy Ticket)等。 3. **Java客户端集成**:学习如何在Java应用中引入CAS...

    Java CAS基本实现原理代码实例解析

    Java CAS基本实现原理代码实例解析 Java CAS(Compare And Swap,比较并交换)是 Java 中的一种并发机制,它可以实现原子性的操作。在 Java 中,CAS 是通过 java.util.concurrent.atomic 包来实现的,例如 ...

    cas4.2.7 实现其他系统和cas互相认证互信

    3. **集成CAS客户端库**:在外部系统中,需要集成CAS客户端库,如Java CAS Client、Spring Security CAS等,它们负责处理与CAS服务器的交互,包括重定向用户到CAS登录页面、接收和验证服务票证。 4. **配置客户端...

    cas.rar_cas java_cas服务端代码_单点登录

    CAS(Central Authentication Service)是...综上所述,这个“cas.rar”压缩包是学习和实践CAS单点登录服务端开发的宝贵资源,通过研究其中的代码,开发者可以掌握CAS的工作原理,进而实现和定制自己的SSO解决方案。

    CAS集成手册(java版

    对于Java开发者来说,理解和掌握这些组件的工作原理以及如何配置和使用它们,是成功集成CAS的关键。在实际应用中,还应关注性能优化,如调整缓存策略,减少网络延迟,以达到"提速N倍"的效果。此外,由于CAS支持多种...

    Java原子操作CAS原理解析

    Java原子操作CAS原理解析 Java原子操作CAS原理解析是Java并发编程中的一种机制,用于解决多线程并行情况下使用锁造成的性能损耗。CAS操作包含三个操作数——内存位置(V)、预期原值(A)、新值(B)。如果内存位置的...

    cas_client.zip_cas java

    1. CAS原理: CAS采用代理票据(Proxy Ticket)模型,用户首先访问客户端应用,客户端发现用户未登录,会重定向用户到CAS服务器进行登录。如果用户认证成功,CAS服务器将返回一个服务票据(Service Ticket),...

Global site tag (gtag.js) - Google Analytics