一.原子操作

syn基于阻塞的锁的机制,1、被阻塞的线程优先级很高,2、拿到锁的线程一直不释放锁怎么办?3、大量的竞争,消耗cpu,同时带来死锁或者其他安全。

CAS的原理

CAS(Compare And Swap),指令级别保证这是一个原子操作

三个运算符:  一个内存地址V,一个期望的值A,一个新值B

基本思路:如果地址V上的值和期望的值A相等,就给地址V赋给新值B,如果不是,不做任何操作。

循环(死循环,自旋)里不断的进行CAS操作

CAS的问题

A---》B----》A,版本号:      A1àB2-àA3

CAS操作长期不成功,cpu不断的循环

最新文章

  1. Unreleased Resource(未释放资源)-Streams(流)
  2. 基于opencv和mfc的摄像头采集代码(GOMFCTemplate2)
  3. 如何订阅Form的自定义事件
  4. SpringMVC Controller 返回值的可选类型
  5. HOG特征(Histogram of Gradient)总结(转载)
  6. iOS 简单block的使用
  7. Fragstats景观分析研究
  8. ajax post 时 form数据serialize()
  9. 感动前行——给医学媳妇写的演讲稿(非IT类)
  10. PureMVC(JS版)源码解析(五):SimpleCommand类
  11. Win 10开门人类智慧的世界领先
  12. ionic2 自定义cordova插件开发以及使用 (Android)
  13. x264源代码简单分析:x264_slice_write()
  14. django自定义simple_tag和filter
  15. netty入门(一)
  16. live555源码学习1---Socket流程架构图
  17. Appium Python API 中文版
  18. mybatis 字段类型Data相
  19. 使WebDev.WebServer.exe 当web服务器
  20. 电信NB-IOT的温湿度采集器开发记录

热门文章

  1. 题解 P2661 【信息传递】
  2. Java list的实现类
  3. ceres for Android 太慢的解决方法
  4. 退居三线iOS开发的自主开发历程
  5. springboot整合mybatis-plus基于纯注解实现一对一(一对多)查询
  6. C# 获取当前执行DLL 所在路径
  7. 【转】通过lombok带你读透Builder构建器
  8. bug的全部
  9. QTP(13)
  10. java8学习之方法引用详解及默认方法分析