面试官不开摄像头,当场挂 哈哈😁1. 多线程的创建方式有几种?2. 实现接口的方式有哪些?Runnable 和 Callable 有什么区别?3. 线程池的创建方式相比其他线程创建方式有什么优势?4. 线程池的核心参数有哪些?5. 核心线程数和最大线程数的区别?6. 超过最大线程数后会发生什么? 拒绝策略7. 常见的线程池有哪些?使用场景分别是什么?8. 线程的生命周期是怎样的?9. 多线程情况下如何解决同步问题?10. ThreadLocal 的工作机制是什么?它为什么会导致内存泄漏?如何避免?11. 什么是线程安全?如何实现?12. synchronized 和 volatile 有什么区别?13. 分布式系统中,如何保证线程安全?14. 分布式锁怎么实现?SETNX 是怎么工作的?15. 可以用 GET + SET 实现分布式锁吗?为什么不推荐?16. 如何保证多个线程 T1、T2、T3 顺序执行?a. 使用 join 方法b. 使用 CountDownLatch17. CountDownLatch 的作用是什么?18. 什么是乐观锁和悲观锁?有什么区别?乐观锁、悲观锁适用的场景分别是什么?19. Redis 存储类型有哪些?20. 各种 Redis 数据类型的特点是什么?21. List 是有序的吗?22. 为什么使用 ZSet 来实现点赞排行榜?23. MySQL 如何优化查询?24. 如何判断索引是否生效?使用什么命令判断索引是否命中? explain25. Linux 系统常用命令有哪些?26. 查日志用什么命令?