内存屏障:
比如有两个CPU在同时处理数据,每个CPU有单独的缓存,并且都有一个公用的内存空间,想要加快执行效率,CPU会乱序执行,看到哪个数据就先执行哪个数据,然后进行批量上架,比如一个CPU同时攒够三个数据才会去上报到内存当中去,缓存优先,会优先执行自己缓存当中的数据,一般很少去看内存当中的数据。同时也可能存在并发编程问题,其他的线程看不到最新的数据,但还是会按顺序执行,比如一个线程的数据还没准备好,另一个线程就已经开始做下面的工作,回到是数据不一致的问题。

三色标记法:
三色表示法是一种垃圾回收算法,通过黑、白、灰三种颜色标记对象是否可达,从而判断哪些对象是否被回收
黑色:表示对象及其引用对象已被标记处理,是可达的
白色:表示数据还未初始化,对象从来没有被访问过
灰色:对象已经被访问,但是引用的对象还未被完全处理
标记流程:

  • 初始阶段:所有对象被标记为白色
  • 根对象标记:从根对象出发,将其标记为灰色
  • 遍历引用:
  1. 取出一个灰色对象,遍历它所有引用的对象
  2. 将被引用的白色对象标记为灰色
  3. 当前灰色对象处理完成后标记为黑色
  • 重复遍历,直到没有灰色对象为止
  • 回收白色对象:剩余的白色对象不可达,就会被回收