附录:
lambda:
- -Djdk.internal.lambda.dumpProxyClass启动带有lambda表达式的小程序,会将lambda表达式相关的中间类型进行输出,方便调试和学习。
框架:
- 矩阵计算工具:jMatrices
- 高性能生产者-消费者、无锁内存队列框架:Disruptor,基于CAS实现,性能远高于BlockingQueue,至少一个数量级以上
- Akka actor并发模型,比线程更轻量级的并发模型,适用于单机和分布式程序。
死锁检测工具:
- jps命令得到java进程ID,再通过jstack得到线程堆栈。
类加载器:
- 应用程序的类由App Loader加载,而系统核心类,如rt.jar中的类由Bootstrap类加载器加载。Bootstrap没有Java对象的对象,因此试图获取这个类加载器会返回null。也就是当一个类的加载器为null时,说明它是由Bootstrap加载的。
jvm参数:
- 开启解决伪共享注解@Contended:-XX:-RestrictContended
- 指定服务器模式: -server
- 偏向锁:-XX:+UseBiasedLocking
- 锁消除:-XX:+EliminateLocks
- 逃逸分析:-XX:+DoEscapeAnalysis
参考文献:
- JMM
- 线程的状态机
- 线程中断描述:
- HashMap多线程卡死分析
- WeakHashMap多线程卡死案例
- HashMap实现原理
- ScheduledThreadPoolExecutor注意事项
- Fork/Join简单实现原理
- ConcurrentLinkedQueue的实现原理分析
- ConcurrentSkipListMap的运作原理
- ThreadLocal在Hibernate中的使用