04-并发编程面试题-重点
发表于|更新于|面试
文章作者: 树灼
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 树灼的博客!
公告

目录
- 1. 基础知识
- 1.1. 并发编程的优缺点为什么要使用并发编程(并发编程的优点)
- 1.2. 并发编程有什么缺点
- 1.3. 并发编程三要素是什么?在 Java 程序中怎么保证多线程的运行安全?
- 1.4. 并行和并发有什么区别?
- 1.5. 什么是多线程,多线程的优劣?
- 1.6. 线程和进程区别 什么是线程和进程?
- 1.7. 什么是上下文切换?
- 1.8. 守护线程和用户线程有什么区别呢?
- 1.9. 如何在 Windows 和 Linux 上查找哪个线程cpu利用率最高?
- 1.10. 什么是线程死锁
- 1.11. 形成死锁的四个必要条件是什么
- 1.12. 如何避免线程死锁
- 1.13. 创建线程的四种方式
- 1.14. 创建线程有哪几种方式?
- 1.15. 线程的 run()和 start()有什么区别?
- 1.16. 为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?
- 1.17. 什么是 FutureTask
- 1.18. 线程的状态和基本操作说说线程的生命周期及五种基本状态?
- 1.19. Java 中用到的线程调度算法是什么?
- 1.20. 线程的调度策略
- 1.21. 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing )?
- 1.22. 为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在 Object 类里?
- 1.23. 为什么 wait(), notify()和 notifyAll()必须在同步方法或者同步块中被调用?
- 1.24. Thread 类中的 yield 方法有什么作用?
- 1.25. 为什么 Thread 类的 sleep()和 yield ()方法是静态的?
- 1.26. 线程的 sleep()方法和 yield()方法有什么区别?
- 1.27. 如何停止一个正在运行的线程?
- 1.28. Java 中 interrupted 和 isInterrupted 方法的区别?
- 1.29. Java 中你怎样唤醒一个阻塞的线程?
- 1.30. notify() 和 notifyAll() 有什么区别?
- 1.31. Java 如何实现多线程之间的通讯和协作?
- 1.32. 什么是线程同步和线程互斥,有哪几种实现方式?
- 1.33. 在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?
- 1.34. 如果你提交任务时,线程池队列已满,这时会发生什么
- 1.35. 在 Java 程序中怎么保证多线程的运行安全?
- 1.36. 你对线程优先级的理解是什么?
- 1.37. 线程类的构造方法、静态块是被哪个线程调用的
- 1.38. Java 中怎么获取一份线程 dump 文件?你如何在 Java 中获取线程堆栈?
- 1.39. Java 线程数过多会造成什么异常?
- 2. 并发理论
- 3. 并发关键字
- 3.1. synchronized
- 3.1.1. synchronized 的作用?
- 3.1.2. 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗
- 3.1.3. 什么是自旋
- 3.1.4. 多线程中 synchronized 锁升级的原理是什么?
- 3.1.5. 线程 B 怎么知道线程 A 修改了变量
- 3.1.6. 当一个线程进一个对象的 synchronized 方法 A 之后,其它线程是否可进入此对象的 synchronized 方法 B?
- 3.1.7. synchronized、volatile、CAS 比较
- 3.1.8. synchronized 和 Lock 有什么区别?
- 3.1.9. synchronized 和 ReentrantLock 区别是什么?
- 3.2. volatile
- 3.3. final
- 3.1. synchronized
- 4. Lock体系
- 4.1. Lock简介与初识AQS
- 4.2. AQ(级。)S(AbstractQueuedSynchronizer)详解与源码分析
- 4.3. ReentrantLock(重入锁)实现原理与公平锁非公平锁区别什么是可重入锁(ReentrantLock)?
- 4.4. 读写锁ReentrantReadWriteLock源码分析
- 4.5. Condition源码分析与等待通知机制 LockSupport详解并发容器并发容器之ConcurrentHashMap详解(JDK1.8版本)与源码分析
- 4.6. 并发容器之CopyOnWriteArrayList详解
- 4.7. ThreadLocal内存泄漏分析与解决方案
- 4.8. 并发容器之BlockingQueue详解
- 4.9. 并发容器之ConcurrentLinkedQueue详解与源码分析并发容器之ArrayBlockingQueue与 LinkedBlockingQueue详解线程池 Executors类创建四种常见线程池什么是线程池?有哪几种创建方式?
- 4.10. 线程池之ThreadPoolExecutor详解
- 4.11. 线程池之ScheduledThreadPoolExecutor详解 FutureTask详解原子操作类
- 5. 并发工具
- 6. 并发实践