码迷,mamicode.com
首页 > 编程语言 > 详细

Java并发-多线程面试(全面)

时间:2018-10-13 10:24:18      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:安全性   blocking   locking   实现   原因   rri   切换   ash   如何使用   

1. 什么是线程?
2. 什么是线程安全和线程不安全?
3. 什么是自旋锁?
4. 什么是Java内存模型?
5. 什么是CAS?
6. 什么是乐观锁和悲观锁?
7. 什么是AQS?
8. 什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classes)?
9. 什么是Executors框架?
10. 什么是阻塞队列?如何使用阻塞队列来实现生产者-消费者模型?
11. 什么是Callable和Future?
12. 什么是FutureTask?
13. 什么是同步容器和并发容器的实现?
14. 什么是多线程?优缺点?
15. 什么是多线程的上下文切换?
16. ThreadLocal的设计理念与作用?
17. ThreadPool(线程池)用法与优势?
18. Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等。
19. synchronized和ReentrantLock的区别?
20. Semaphore有什么作用?
21. Java Concurrency API中的Lock接口(Lock interface)是什么?对比同步它有什么优势?
22. Hashtable的size()方法中明明只有一条语句”return count”,为什么还要做同步?
23. ConcurrentHashMap的并发度是什么?
24. ReentrantReadWriteLock读写锁的使用?
25. CyclicBarrier和CountDownLatch的用法及区别?
26. LockSupport工具?
27. Condition接口及其实现原理?
28. Fork/Join框架的理解?
29. wait()和sleep()的区别?
30. 线程的五个状态(五种状态,创建、就绪、运行、阻塞和死亡)?
31. start()方法和run()方法的区别?
32. Runnable接口和Callable接口的区别?
33. volatile关键字的作用?
34. Java中如何获取到线程dump文件?
35. 线程和进程有什么区别?
36. 线程实现的方式有几种(四种)?
37. 高并发、任务执行时间短的业务怎样使用线程池?并发不高、任务执行时间长的业务怎样使用线程池?并发高、业务执行时间长的业务怎样使用线程池?
38. 如果你提交任务时,线程池队列已满,这时会发生什么?
39. 锁的等级:方法锁、对象锁、类锁?
40. 如果同步块内的线程抛出异常会发生什么?
41. 并发编程(concurrency)并行编程(parallellism)有什么区别?
42. 如何保证多线程下 i++ 结果正确?
43. 一个线程如果出现了运行时异常会怎么样?
44. 如何在两个线程之间共享数据?
45. 生产者消费者模型的作用是什么?
46. 怎么唤醒一个阻塞的线程?
47. Java中用到的线程调度算法是什么
48. 单例模式的线程安全性?
49. 线程类的构造方法、静态块是被哪个线程调用的?
50. 同步方法和同步块,哪个是更好的选择?
51. 如何检测死锁?怎么预防死锁?
52. ConcurrentModificationException 异常原因?

会逐步更新答案.....

Java并发-多线程面试(全面)

标签:安全性   blocking   locking   实现   原因   rri   切换   ash   如何使用   

原文地址:https://www.cnblogs.com/java-zzl/p/9781777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!