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