摘要:
happens-before 一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须存在happens-before关系 happen-before原则是JMM中非常重要的原则,它是判断数据是否存在竞争、线程是否安全的主要依据,保证了多线程环境下的可见性。 happens-before原则定 阅读全文
posted @ 2018-11-02 19:17
那股泥石流
阅读(760)
评论(0)
推荐(0)
摘要:
在执行程序时为了提高性能,提高并行度,编译器和处理器常常会对指令做重排序。重排序分三种类型: 问题:重排序都可能会导致多线程程序出现内存可见性问题 1)编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。 2)指令级并行的重排序。处理器多条指令重叠执行,改变语句对应 阅读全文
posted @ 2018-11-02 19:04
那股泥石流
阅读(2015)
评论(0)
推荐(1)
摘要:
synchronized是一个重量级的锁,volatile通常被比喻成轻量级的synchronized volatile是一个变量修饰符,只能用来修饰变量。 volatile写:当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量刷新到主内存。 volatile读:当读一个vo 阅读全文
posted @ 2018-11-02 12:02
那股泥石流
阅读(1418)
评论(1)
推荐(1)