此处暂时收集一些常见的面试题,以后针对这块的收集从此处延伸下去并补全
(1)synchronized的CPU原语级别是如何实现的?
(2)无锁、偏向锁、轻量级锁、重量级锁有什么差别,升级过程如何?
(3)线程间通信,同机器进程间通信,跨机器进程间通信,各有什么方法?
(4)下列三种业务,应该如何使用线程池:
- 高并发、任务执行时间短的业务
- 并发不高、任务执行时间长的业务
- 并发高、业务执行时间长的业务
(5)秒杀系统,如何能够撑住100W级别TPS(淘宝最高54万TPS)?
下面是某网课的内容,笑笑就好
1、synchronized关键字的字节码原语;
2、volatile关键字的字节码原语;
3、synchronized与volatile的硬件级实现;
4、无锁、偏向锁、轻量级锁、重量级锁的升级过程;
5、内存屏障的基本概念;
6、JVM规范如何要求内存屏障;
7、硬件层级内存屏障如何帮助java实现高并发;
8、面试第3题(线程间通讯)的8种解法;
9、作业;
1、线程池的学与思;
2、使用线程池的好与不好;
3、为什么阿里开发手册建议自定义线程池;
4、自定义线程池的最佳实践;
5、常见线程池类型与应用场景:
1)CachedPool
2)FixedThreadPool
3)ScheduledPool
4)WorkStealingPool
5)ForkJoinPool
6、比线程更牛X的线程,压测结果展现纤程的威力;
7、总结;