1现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?
这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检查你对“join”方法是否熟悉,这个线程问题比较简单,可以用join方法实现。
2在Java中Lock接口比synchronized块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样实现它?
Lock接口在多线程和并发编程中最大的优势是它们为读和写分别提供了锁,它能满足你写像ConcurrentHashMap这样的高性能数据结构和有条件的阻塞。Java线程面试的问题越来越会根据面试者的回答来提问。强烈建议在你去参加多线程的面试之前认真读一下Locks,因为当前其大量用于构建电子交易终端的客户端缓存和交易链接空间。
3在java中wait和sleep方法有什么不同?
通常会在电话面试中问到的java线程问题。最大的不同是在等待时wait会释放锁,而sleep一直持有锁。Wait通常被用于线程交互,sleep通常被用于暂停执行。
4用java实现阻塞队列