21个最常见Java并发编程面试题

  1. Thread 的run 与start方法有什么区别
  2. 5个线程同时访问5个共享资源,如何避免死锁
  3. 哪种使用多线程的方式更好呢?继承Thread or 实现 Runnable
  4. “Busy Spinning”是什么?你为什么使用它
  5. CountDownLatch和CyclicBarrier有什么区别
  6. wait和sleep有什么区别
  7. 实现一个生产者、消费者模型
  8. 为什么ConcurrentHashMap比HashTable快
  9. Executor和ExecutorService的submit和execute方法有什么区别
  10. 如何在两个线程之间共享数据
  11. 对比一下Lock和synchronized
  12. 对比一下ReentrantLock和ReadWriteLock
  13. 有三个线程T1、T2、T3,怎么保证T2在T1之后执行,T2在T2之后执行
  14. 实现一个阻塞队列
  15. 举一个会产生死锁的场景,并用代码实现
  16. 什么是原子操作?java中的原子类有哪些,是怎么实现原子性的
  17. volatile的作用是什么,与synchronized有什么区别
  18. 线上服务突然假死,应该怎么分析
  19. 怎么唤醒一个blocked的线程
  20. 什么是不可变对象?它在并发编程中有什么优势和劣势
  21. 在多线程编程中,你踩过什么坑

一起学习交流呀
21个最常见Java并发编程面试题_第1张图片

你可能感兴趣的:(Java,并发编程)