可以理解为乞丐版的synchronized
三大特性:
1.保证可见性
2.不保证原子性
3.禁止指令重排

(1).可见性验证


添加volatile


(2).验证原子性


为什么出现次数少的情况?
假设ABC三个线程,ABC线程可能同时读到一样的值是1到各自的内存空间,A线程修改为2,写入了主内存,通知其他线程值已经修改,这时候的BC也修改为2,准备写入回主内存的时候,被挂起,然后通知没有收到,这时候BC线程回来之后,没有接收到最新的值,所以又把2写入回主内存,这时候,主内存的2被覆盖,这就是写覆盖
怎么解决?
AtomicInteger一个int可能原子更新的值(保证原子性)

(3).禁止指令重排
计算机在执行程序时,为了提高性能,编译器和处理器的常常会对指令做重排,一般分以下3种

1.单线程环境里面确保程序最终执行结果和代码顺序执行的结果一致。
2.处理器在进行重排序时必须要考虑指令之间的数据依赖性
3.多线程环境中线程交替执行,由于编译器优化重排的存在,两个线程中使用的变量能否保证一致性是无法确定的,结果无法预测

valotitle 轻量级 同步机制相关推荐

  1. 8天玩转并行开发——第四天 同步机制(上)

    在并行计算中,不可避免的会碰到多个任务共享变量,实例,集合.虽然task自带了两个方法:task.ContinueWith()和Task.Factory .ContinueWhenAll()来实现任务 ...

  2. 并行开发 4.同步机制(上)

    原文:8天玩转并行开发--第四天 同步机制(上) 在并行计算中,不可避免的会碰到多个任务共享变量,实例,集合.虽然task自带了两个方法:task.ContinueWith()和Task.Factor ...

  3. Linux内核同步机制之completion

    内核编程中常见的一种模式是,在当前线程之外初始化某个活动,然后等待该活动的结束.这个活动可能是,创建一个新的内核线程或者新的用户空间进程.对一个已有进程的某个请求,或者某种类型的硬件动作,等等.在这种 ...

  4. 8天玩转并行开发——第五天 同步机制(下)

    承接上一篇,我们继续说下.net4.0中的同步机制,是的,当出现了并行计算的时候,轻量级别的同步机制应运而生,在信号量这一块 出现了一系列的轻量级,今天继续介绍下面的3个信号量 CountdownEv ...

  5. 多线程的实现与多线程的同步机制-让你轻松掌握多线程编程

    多线程的实现与多线程的同步机制 1. 多线程的实现 1.1 继承Thread类 创建一个类,这个类需要继承Thread类 重写Thread类的run方法(run方法中是业务代码) 实例化此线程类 调用 ...

  6. synchronized同步机制——如果你愿意一层一层剥开我的心

    前言 synchronized,是解决并发情况下数据同步访问问题的一把利刃.那么synchronized的底层原理是什么呢?下面我们来一层一层剥开它的心,就像剥洋葱一样,看个究竟. Synchroni ...

  7. Zookeeper同步机制!!!

    优点:解决方案.处理问题能力.架构优化/拓展能力 零.Zookeeper事务 事务id(主从同步Id-每次ack递增+1,64位存储(32位纪元号-leader号,32位自增号)) 每一个操作都将使节 ...

  8. futex同步机制分析之一应用

    futex同步机制分析之一应用 一.多线程(进程)的同步机制 c++编程中最难的部分有哪些,估计绝大多数人都会首先提出来是多线程(进程)编程.为什么多线程编程难呢?一个主要的原因就是多线程的同步.在多 ...

  9. volatile 关键字总结,原理+示例 - Java 轻量级同步

    本文概述 volatile 关键字对增删改查程序员应该是比较陌生的.(反正我前几年是一次没用过) 暴露了我菜鸡的水准... volatile 是 JVM 提供的一种轻量级的同步机制. Java 语言包 ...

最新文章

  1. 考虑 PHP 5.0~5.6 各版本兼容性的 cURL 文件上传
  2. 自定义键盘keyfere——pcsensor
  3. 盛语小智教育机器人是骗人的_武清区人民检察院未检工作室,开展普法机器人进校园宣讲活动...
  4. 被 Kafka 虐的日子,太惨了……
  5. android php mysql json 查询_android php mysql json
  6. SAP的SqlAnyWhere中数据库日志文件删除后如何新建
  7. 生产环境linux下安装两个及两个以上tomcat实践
  8. 浙江师范大学c语言函数实验答案,浙江师范大学2012年秋C语言考试卷与答案
  9. 【经验分享】为什么后台取到的时间和前台差8个小时?
  10. zookeeper 分布式锁_详细讲解!从秒杀聊到ZooKeeper分布式锁
  11. Ubuntu与stm32串口通信及Windows与stm32串口通信
  12. 服装收银系统 服装收银 服装收银软件 收银软件 收银系统 好用的服装软件
  13. 基于C语言的移位密码和仿射密码
  14. Echarts柱状图常用属性
  15. Netty原理:pipeline
  16. CAD重装时显示已安装
  17. h3c服务器登录密码修改,H3C交换机配置ssh密码验证登录方式
  18. 手机CPU天梯图2021年6月版
  19. android 高仿拼多多,Android 仿京东、拼多多商品分类页
  20. 不只是coding_不只是外表

热门文章

  1. 鸿蒙开发版智慧生活,华为发布全新分布式鸿蒙OS,打造全场景智慧生活新体验...
  2. cad插件加载bplot成功用不了_新手入门,学习CAD必须掌握,教你使用标注命令,绘图效率翻一倍...
  3. 为什么自己编写的页面总是在那里抖动_为什么小红书的简介添加不上 个性签名的修改方法...
  4. 服务器安装三节点RabbitMQ集群(4)
  5. 企业微信添加机器人播报天气
  6. 浅谈OpenCL四大模型之Execution Model
  7. ie7中overflow:hidden无效解决办法
  8. 损失层SoftmaxWithLossLayer
  9. MongoDB安装中断问题 - 踩坑篇
  10. 拟态个人主页UI源码开源