
java并发
文章平均质量分 51
java并发学习,总结经验
swust_lian
无武
展开
-
Volatile理解
Volatile理解 Volatile 通过加入内存屏障和禁止重排序优化来实现 1、对volatile变量写操作时,会在写操作后加入一条store屏障命令,将本地内存中的共享变量值刷新到主内存 2、对volatile变量读操作时,会在读操作前加入一条load屏障命令,从主内存中读取共享变量 示意图: 应用场景 1、错误场景: 使用volatile 修饰一个计数变量如 privatvolatile static int count = 0; 企图通过volatile来实现count+..原创 2021-05-09 22:27:29 · 178 阅读 · 0 评论 -
Synchronized 理解
Synchronized 理解 JMM关于Synchronized的两条规定: 1、线程解锁前,必须把共享变量的最新值刷新到主内存; 2、线程加锁时,将清空工作内存重共享变量的值,从而使用共享变量时需要从主内存重重新读取最新的值。 注意:加锁与解锁是同一把锁。如何理解?要么是锁的同一个对象,要么是锁的同一个类,接着往下看 锁对象 锁对象有以下两种种情况:Synchronized修饰普通方法,Synchronized作用于方法块 test1 和 test2 锁的对象是this,他们是互斥.原创 2021-05-09 21:39:57 · 170 阅读 · 0 评论 -
Java Atomic总结
Java Atomic总结 一、atomic使用 concurrent包下的atomic提供我们这么一种轻量级的数据同步的选择。 package com.example.concurrent.example.atomiccount; import com.example.concurrent.annoations.NotThreadSafe; import com.example.concurrent.annoations.ThreadSafe; import lombok.extern.s...原创 2021-05-09 16:04:34 · 267 阅读 · 1 评论