并发编程复盘

线程的基础知识

  • 线程与进程的区别
  • 并行与并发的区别
  • 线程创建的方式有哪些
  • runnable 和 callable 有什么区别
  • 线程包括哪些状态,状态之间是如何变化的
  • 在java中wait和sleep方法的不同
  • 新建三个线程,如何保证它们按顺序执行
  • notify()和 notifyAll()有什么区别
  • 线程的 run()和 start()有什么区别
  • 如何停止一个正在运行的线程

线程中并发安全

  • synchronized关键字的底层原理
  • 你谈谈 JMM(Java 内存模型)
  • CAS 你知道吗
  • 什么是AQS
  • ReentrantLock的实现原理
  • synchronized和Lock有什么区别
  • 死锁产生的条件是什么
  • 如何进行死锁诊断
  • 请谈谈你对 volatile 的理解
  • 聊一下ConcurrentHashMap
  • 导致并发程序出现问题的根本原因是什么

线程池

  • 说一下线程池的核心参数(线程池的执行原理知道嘛)
  • 线程池中有哪些常见的阻塞队列
  • 如何确定核心线程数
  • 线程池的种类有哪些
  • 为什么不建议用Executors创建线程池

使用场景

  • 线程池使用场景(你们项目中哪里用到了线程池)
  • 如何控制某个方法允许并发访问线程的数量
  • 谈谈你对ThreadLocal的理解

一. 线程的基础知识 

1. 线程和进

你可能感兴趣的:(开发语言)