13总结

  • CPU 与内存、I/O 的速度差异的优化引发可见性、原子性和有序性问题
  • Java 内存模型和互斥锁方案解决三个问题
  • 互斥锁是解决并发问题的核心工具,会引发死锁
  • 死锁的原因、解决方案 以及 “等待-通知”机制 (synchronized,wait,notify(),notifyAll)
  • 宏观的角度重新审视并发问题:安全性、活跃性、性能
  • 管程,解决线程的互斥与同步问题;管程模型
  • 线程生命周期、内部如何执行、计算线程数
  • 面向对象编写并发程序
1
2
logger.debug("The var1:{}, var2:{}", var1, var2);
logger.debug("The var1:" + var1 + ", var2:" + var2);

占位符写法仅仅是将参数压栈,而没有参数的计算。使用{}占位符是写日志的一个良好习惯。