Java并发-多线程面试(全面)
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.