Volatile

上下文切换

阐述:CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个
任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这
个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换

如何减少上下文切换 方案
无锁并发编程 将数据的ID按照Hash算法取模分段,不同的线程处理不同段的数据
CAS算法 Java的Atomic包使用CAS算法来更新数据,而不需要加锁
使用最少线程 避免创建不需要的线程

volatile

描述 特点
1.使用volatile关键字会强制将修改的值立即写入主存 1.保证有序性、可见性
2.导致其他线程的工作内存中缓存变量的缓存行无效 2.不保证原子性
1
应用场景:状态标志