摘要:volatile三大特性: 1. 内存可见性 2.不保证原子性 3. 禁止重排序内存屏障的概念:memory barrier是一个CPU指令。指令逻辑:a.确保一些特定操作执行顺序 b.影响一些数据的可见性 编译器和CPU可以在保证输出结果一样的情况下对指令重排序,使性能得到优化。插入一个内存屏障,
阅读全文
随笔分类 - java并发编程
摘要:public class ReentrantDemo { //重入锁 保护临界区资源count,确保多线程对count操作的安全性 /*public static ReentrantLock rtlock = new ReentrantLock(); public static int count = 0; Thread t = new Thread(new Ru...
阅读全文
摘要:public class InterruptDemo { public static void main(String[] args) throws InterruptedException{ Thread t1 = new Thread(){ public void run(){ while (t
阅读全文
摘要:import java.util.concurrent.atomic.AtomicReference;//boolean compareAndSet(V expect, V update)//如果当前值 == 预期值,则以原子方式将该值设置为给定的更新值public class SpinLockDe
阅读全文
摘要:概念解析 并发机制依赖于JVM的实现和CPU的指令1. volatile一般在多线程中使用,保证共享变量的可见性,解决并发带来的问题 可见性意思就是一个线程修改另外一个线程可以看到修改后的值,通过排它锁单独获得这个变量 volatile执行成本低,因为不会引起线程上下文的切换和调度 synchron
阅读全文
摘要://注意点1. notify唤醒沉睡的线程后,线程会接着上次的执行继续往下执行 class TreadTest implements Runnable{ //由于wait、notify、notifyall在synchronized代码块执行,说明当前线程一定是获取了锁的 @Override public synchronized void run() { ...
阅读全文
浙公网安备 33010602011771号