摘要:
一.原子性操作 所谓原子性操作,是指执行一系列操作时,这些操作要么全部执行,要么全部不执行,不存在执行其中一部分的情况。 如果不能保证操作是原子的,那么在多线程情况下,就有可能会存在线程安全问题。 接下来用代码来验证非原子操作在多线程环境下的线程安全问题: public class ThreadSa 阅读全文
摘要:
内存可见性问题 常见的CPU架构如图所示,当一个线程操作共享变量时,首先将该变量从主内存中读取到自己的工作内存(L1,L2 Cache),处理完之后,再将变量写回到主内存中。 现在假设有一个共享变量X,值为0,线程A首先获取变量X的值,由于L1,L2 Cache都没有命中,将从主内存中加载变量X到L 阅读全文