Java 并发编程面试题31 题
- 01 创建线程有哪几种方式?Runnable 和 Callable 有什么区别?
- 02 乐观锁和悲观锁有什么区别?
- 03 什么是 CAS?它有什么问题?
- 04 什么是死锁?产生条件和如何避免?
- 05 线程池的核心参数有哪些?任务提交后的执行流程是怎样的?
- 06 线程池的拒绝策略有哪几种?分别适合什么场景?
- 07 阻塞队列 BlockingQueue 的原理是什么?有哪些常见实现?
- 08 CompletableFuture 是什么?和 Future 相比解决了什么问题?
- 09 CountDownLatch、CyclicBarrier、Semaphore 有什么区别?
- 10 Executors 提供了哪几种线程池?为什么不推荐用它创建线程池?
- 11 Java 的原子类有哪些?AtomicInteger 怎么实现线程安全?如何解决 ABA 问题?
- 12 Java 线程有哪些状态?BLOCKED 和 WAITING 有什么区别?
- 13 synchronized 和 ReentrantLock 有什么区别?
- 14 synchronized 和 volatile 有什么区别?volatile 能保证原子性吗?
- 15 volatile 关键字的作用和原理是什么?
- 16 wait/notify 的用法是什么?为什么必须在同步块里?和 Condition 有什么区别?
- 17 AQS 的原理是什么?
- 18 happens-before 原则是什么?指令重排序和内存屏障是怎么回事?
- 19 synchronized 的底层原理是什么?锁升级是怎么回事?
- 20 线程池有哪几种状态?shutdown 和 shutdownNow 有什么区别?
- 21 Java 的线程中断机制是什么?为什么不能用 stop() 停止线程?如何优雅地停止线程?
- 22 Java 怎么实现定时任务?ScheduledThreadPoolExecutor 和 Timer 有什么区别?
- 23 start 和 run、sleep 和 wait、join 和 yield 有什么区别?
- 24 ThreadLocal 的原理是什么?为什么可能内存泄漏?
- 25 读写锁 ReentrantReadWriteLock 的原理是什么?StampedLock 又快在哪?
- 26 ForkJoinPool 是什么?工作窃取(work-stealing)是怎么工作的?
- 27 InheritableThreadLocal 是什么?为什么线程池里父子线程传递会失效?TransmittableThreadLocal 怎么解决?
- 28 什么是守护线程(daemon thread)?它和普通线程有什么区别?
- 29 Exchanger 是什么?它适合什么场景?
- 30 ThreadLocalRandom 是什么?为什么并发下比 Random 快?
- 31 Phaser 是什么?它和 CyclicBarrier、CountDownLatch 有什么区别?
没有符合条件的题目。