1) 现在有 T1、T2、T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行?
2) 在 Java 中 Lock 接口比 synchronized 块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?
3)在 java 中 wait 和 sleep 方法的不同?
4)用 Java 实现阻塞队列。
5)用 Java 写代码来解决生产者——消费者问题。
6)用 Java 编程一个会导致死锁的程序,你将怎么解决?
7) 什么是原子操作,Java 中的原子操作是什么?
8) Java 中的 volatile 关键是什么作用?怎样使用它?在 Java 中它跟 synchronized 方法有什么不同?
9) 什么是竞争条件?你怎样发现和解决竞争?
10) 你将如何使用 threaddump?你将如何分析 Thread dump?
11) 为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?
12) Java 中你怎样唤醒一个阻塞的线程?
13) 在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?
14) 什么是不可变对象,它对写并发应用有什么帮助?
15) 你在多线程环境中遇到的常见的问题是什么?你是怎么解决它的?