最近在看JAVA并发的知识,里面提到CAS概念,其实说白了和数据库操作一样,代条件的更新,在更新原值之前,记录原来的值,真正的更新的时候比对原值,如果原值编码,则不做更新
UPDATE A+100 WHERE A=100
Compare And Swap
CAS 指的是现代 CPU 广泛支持的一种对内存中的共享数据进行操作的一种特殊指令。这个指令会对内存中的共享数据做原子的读写操作。简单介绍一下这个指令的操作过程:首先,CPU 会将内存中将要被更改的数据与期望的值做比较。然后,当这两个值相等时,CPU 才会将内存中的数值替换为新的值。否则便不做操作。最后,CPU 会将旧的数值返回。这一系列的操作是原子的。它们虽然看似复杂,但却是 Java 5 并发机制优于原有锁机制的根本。简单来说,CAS 的含义是“我认为原有的值应该是什么,如果是,则将原有的值更新为新值,否则不做修改,并告诉我原来的值是多少”。(这段描述引自《Java并发编程实践》)
简单的来说,CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则返回V。这是一种乐观锁的思路,它相信在它修改之前,没有其它线程去修改它;而Synchronized是一种悲观锁,它认为在它修改之前,一定会有其它线程去修改它,悲观锁效率很低。下面来看一下AtomicInteger是如何利用CAS实现原子性操作的。
分享到:
相关推荐
以下是对压缩包中内容的详细解释: 1. **CAS服务器端自定义认证**: CAS服务端的核心功能在于验证用户的身份。在默认情况下,CAS会通过用户名和密码进行基本的认证。但在实际项目中,可能会需要与不同的后端系统或...
下面将详细解释这个版本的关键特性、安装步骤以及如何进行配置。 **关键特性:** 1. **安全性增强**:CAS 5.2.6包含了一些安全修复和改进,确保服务端在处理认证请求时能提供更高的安全性。 2. **新功能与改进**...
下面将详细解释这些技术及其整合过程。 首先,Spring是一个开源的Java框架,它简化了开发过程,提供了依赖注入(DI)和面向切面编程(AOP)等功能。Spring Web MVC是Spring框架的一部分,专门用于构建Web应用程序。...
这里的关键参数解释如下: - `mode="Forms"`: 指定使用Forms认证模式。 - `loginUrl`: 用户未登录时重定向到的登录页面地址。 - `defaultUrl`: 成功登录后默认重定向到的页面地址。 - `timeout`: 会话超时时间,单位...
4. **文档**:解释了如何部署和运行示例,以及如何调整配置以适应你的具体需求。 要充分利用这个示例,你需要根据自己的环境对配置文件进行适当的修改,如设置正确的URL、客户端ID和密钥,并确保CAS服务器和第三方...
- 相关文档:解释如何配置和部署CAS服务器,以及API参考。 3. **集成与配置**: 将CAS客户端和服务器集成时,开发者需要确保客户端的配置指向正确的CAS服务器URL,并且服务器配置正确处理来自客户端的请求。这...
《H3C CAS七日通》是一份针对H3C云计算软件套件——H3C Cloud ...而“H3C CAS兼容VMware技术白皮书”则会进一步解释H3C CAS与VMware的兼容性特点,对于已经在使用或计划使用VMware技术的用户,这将是重要的参考资料。
3. **用户认证流程**:详细步骤解释了用户如何从登录到访问服务的整个过程,包括登录页面跳转、CAS服务器验证、返回TGT和ST,以及服务验证ST。 4. **故障排查**:可能遇到的问题,如票证验证失败、重定向错误等,...
描述中提到的“NULL”可能是由于原始信息缺失,但我们可以根据标题推测,这篇文章可能详细解释了如何在客户端(如Web应用)上定制登录逻辑,利用iframe技术与CAS服务器进行交互,实现无刷新的登录体验。 标签“源码...
例如,IBM对SSO有一个形象的解释“单点登录、全网漫游”。CAS单点登录系统可以减少用户在不同系统中登录耗费的时间,减少用户登录出错的可能性,提高工作效率。 五、CAS单点登录系统的发展 CAS单点登录系统的发展...
这些文档会详细解释CAS的工作流程,如Ticket生成、验证、服务注册等。 3. **配置文件**:如`cas.properties`,用于设置CAS服务器的各项属性,如数据库连接、日志配置、服务器端口等。理解和修改这些配置对于部署和...
### CAS配置详解 #### 一、概述 CAS (Central Authentication Service) 是一种单点登录 (Single Sign-On, SSO) 的实现方式,主要用于简化多应用系统间的用户认证过程。本篇将详细介绍如何在Java环境下配置CAS,...
0.5 术语与缩写解释: - AceGI:AceGi Security,一个用于Spring Web应用的安全框架。 - CAS:Central Authentication Service,中心认证服务,提供单一登录解决方案。 - SSO:Single Sign-On,单点登录,用户只需...
在这个案例中,可能详细解释了如何配置CAS服务器和客户端应用程序,以及如何启动和测试整个SSO环境。为了运行这个实例,你需要按照readme.txt中的指示进行操作,这可能包括修改配置文件、部署服务端应用、配置客户端...
描述中的“写的挺细”暗示了文档内容可能包含了详细的步骤和解释,这意味着我们将深入探讨如何在Tomcat环境下配置和实现CAS单点登录。 **单点登录(SSO)** 单点登录是网络环境中的一种安全机制,用户只需要一次...
"protocol"文件可能详细解释了CAS支持的各种认证协议的工作原理,如CAS Protocol、CAS v2、CAS v3以及CAS v4等。了解这些协议可以帮助你更好地理解用户认证的流程和交互细节。 **图片资源** "images"目录下的文件...
最后,压缩包通常会附带一份详细的README文件或用户手册,解释如何安装、配置和运行这个DEMO,以帮助开发者快速理解和上手。 综上所述,"CAS-DEMO.zip"包含了搭建和理解CAS SSO系统的诸多组件和配置,通过学习和...
下面将详细解释这些组件在SSO中的作用和配置过程。 首先,SpringBoot是一个基于Spring框架的高度模块化和简化开发的工具,用于快速构建可独立运行的Java应用。在这个SSO集成中,SpringBoot作为基础框架,提供了一个...
下面将详细解释这些知识点。 1. **Spring MVC**: Spring MVC是Spring框架的一部分,用于构建Web应用程序。它遵循模型-视图-控制器(MVC)设计模式,分离了业务逻辑、数据和用户界面。Spring MVC通过...
1. **名词解释** - **ST(Service Ticket)**:服务票据,由CAS签发给用户,用于访问特定服务。ST是一次性的,只有对应的CAS客户端能够验证,通常生命周期很短。 - **TGT(Ticket Granting Ticket)**:票据授予...