concurrent

慕课网并发编程实战学习

并发基础

CPU多级缓存



CPU缓存:cpu->cache->memory 使得CPU和内存之间的数据同步的速度得到匹配

缓存一致性(MESI)

  • 用户保证多个CPU cache之间缓存共享数据的一致
  • MESI:M->modify E->Exclusive S->Shared I->invalid

乱序执行优化

处理器为提高运算速度而做出违背代码原有顺序的优化

Java内存模型

同步八种操作

  • lock(锁定):作用于主内存的变量,把一个变量标识为一条线程独占状态
  • unlock(解锁):作用于主内存的变量,把一个处于锁定状态的变量释放出来,释放后的变量才可以被其他线程锁定
  • read(读取):作用于主内存的变量,把一个变量值从主内存传输到线程的工作内存中,以便随后load动作使用
  • load(载入):作用于工作内存的变量,它把read操作从主内存中得到的变量值放入到工作内存的变量副本中
  • use(使用):作用于工作内存的变量,把工作内存中的一个变量值传递到执行引擎
  • assign(赋值):作用于工作内存的变量,它把一个从执行引擎接收到的值赋值给工作内存的变量
  • store(存储):作用于工作内存的变量,把工作内存中的一个变量的值传送到内存中,以便随后的write操作
  • write(写入):作用于主内存的变量,它把store操作从工作内存中的一个变量的值传送到主内存的变量中