带着问题重学 Java 并发编程

2019-08-16  

基本概念

什么是并发编程?

为什么要用并发编程?

并发编程的缺点?

并行是什么意思?与并发的区别是什么?

什么是线程?什么是进程?有什么区别?

如何创建、启动 Java 线程?

如何优雅地停止一个线程?

什么是守护线程?

线程包括哪些状态?状态之间是如何变化的?

什么是线程池?

线程池包含哪些状态?

如何停止一个线程池?

导致并发编程出问题的根本原因是什么?

Java 隐式锁 - synchronized 关键字

Java 中的 volatile 关键字

Java 中的锁是什么?

Java 中的锁如何使用?有什么注意事项?

Java 中可重入锁、不可重入锁的测试

Java 中锁之间的对比

synchronized 锁的升级原理是什么?

什么是死锁?

如何避免死锁?

什么是活锁和饥饿?

Java 中的无锁技术是什么?如何使用?

什么是 Java 内存模型?

什么是 happens-before 原则?

什么是协程?Java 中如何支持?

 

JDK 1.8中的并发工具类

Condition实现等待、唤醒

Semaphore 如何使用?

ReadWriteLock 如何使用?

StampedLock 如何使用?

CountDownLatch 如何使用?

CyclicBarrier 如何使用?

JDK 中有哪些同步容器?并发容器?

并发原子类包括哪些?如何使用?

Executor 如何使用?

Future 如何使用?

 

扩展

Java 并发编程总结与学习资源推荐

 

ConstXiong 备案号:苏ICP备16009629号-3