java多线程之抛砖引玉
java多线程常见面试问题
01 什么是线程?什么是进程?
02 什么是线程安全和线程不安全?举个例子?hashmap安全吗?
03 什么是⾃旋锁?
04 什么是CAS?
05 什么是乐观锁和悲观锁?
06 什么是AQS?
07 什么是原⼦操作?在Java Concurrency API中有哪些原⼦类(atomic classes)?
08 什么是Executors框架?
09 什么是阻塞队列?如何使⽤阻塞队列来实现⽣产者-消费者模型?
10 什么是Callable和Future?
11 什么是FutureTask?
12 什么是同步容器和并发容器?
13 什么是多线程的上下⽂切换?
14 ThreadLocal的设计理念与作⽤?
15 ThreadPool(线程池)⽤法与优势?
16 CountDownLatch有了解吗?
17 synchronized和ReentrantLock的区别?
18 Semaphore有什么作⽤?
19 Java Concurrency API中的Lock接⼝(Lock interface)是什么?对⽐同步它有什么优势?
20 Hashtable的size()⽅法中明明只有⼀条语句”return count”,为什么还要做同步?
21 ConcurrentHashMap的并发度是什么?
22 ReentrantReadWriteLock读写锁的使⽤?
23 CyclicBarrier和CountDownLatch的⽤法及区别?
24 LockSupport⼯具是什么?
25 Condition接⼝及其实现原理?
26 Fork/Join框架的理解?
27 wait()和sleep()的区别?
28 线程的五个状态(五种状态,创建、就绪、运⾏、阻塞和死亡)?
29 start()⽅法和run()⽅法的区别?
30 Runnable接⼝和Callable接⼝的区别?
31 volatile关键字的作⽤?
32 Java中如何获取到线程dump⽂件?
33 线程和进程有什么区别?
34 线程实现的⽅式有⼏种(四种)?
35 ⾼并发、任务执⾏时间短的业务怎样使⽤线程池?并发不⾼、任务执⾏时间⻓的业务怎样使⽤线程池?并发⾼业务执⾏时间⻓的业务怎样使⽤线程池?
36. 如果你提交任务时,线程池队列已满,这时会发⽣什么?
37 锁的等级:⽅法锁、对象锁、类锁?
38 如果同步块内的线程抛出异常会发⽣什么?
39 并发编程(concurrency)并⾏编程(parallellism)有什么区别?
40 如何保证多线程下 i++ 结果正确?
41⼀个线程如果出现了运⾏时异常会怎么样?
42 如何在两个线程之间共享数据?
43 ⽣产者消费者模型的作⽤是什么?
45 Java中⽤到的线程调度算法是什么
46 单例模式的线程安全性?
47 线程类的构造⽅法、静态块是被哪个线程调⽤的?
48 同步⽅法和同步块,哪个是更好的选择?
49 如何检测死锁?怎么预防死锁?
50. HashMap在多线程环境下使⽤需要注意什么?
51 什么是守护线程?有什么⽤?
52 如何实现线程串⾏执⾏?
53. 可以运⾏时kill掉⼀个线程吗?
54. 关于synchronized
56. spring单例如何解决安全问题(ThreadLocal)
57. 线程池原理
58. java锁多个对象
59. java线程如何启动
60. java中加锁的⽅式有哪些,如何实现、怎么个写法?
61、ThreadLocal为什么会发⽣内存泄漏?
62 jdk8中对ConcurrentHashmap的改进
64 ⾼并发系统如何做性能优化?如何防⽌库存超卖?