1、Java创建线程之后,直接调用start()方法和run()的区别
2、 线程B怎么知道线程A修改了变量
3、线程间通信,wait和notify的理解和使用
4、定时线程的使用
5、线程同步的方法
6、进程和线程的区别
7、什么叫线程安全
8、线程的几种状态
9、Java中什么是竞态条件
10、Java中如何停止一个线程
11、线程池的优点
12、volatile的理解
13、实现多线程有几种方式
14、Java中notify和notifyAll有什么区别
15、什么是乐观锁、悲观锁
16、 线程的创建方式
17、线程池的作用
18、wait和是sleep的区别
19、产生死锁的条件
20、实现线程安全的几种方式
21、守护线程是什么?它和非守护线程的区别
22、什么是多线程的上下文切换
23、Callable和Runnab的区别是什么
24、 线程阻塞有哪些原因
25、synchronized和lock的区别
26、ThreadLocal是什么,有什么作用
27、交互方式分为同步和异步两种?
28、什么是FutureTask
29、死锁的原因
30、什么是自旋
31、怎么唤醒一个阻塞的线程
32、如果提交任务时,线程池队列已满,这时会发生什么
33、什么是线程局部变量
34、使用volatile关键字的场景
35、线程池的工作原理,几个重要参数
36、线程池的类型
37、线程池的阻塞队列有哪些
38、线程池的拒绝策略都有哪些