写在前面
100个问题搞定Java虚拟机
100个问题搞定大数据理论体系
1000个问题搞定大数据技术体系
目录结构
- 什么叫线程安全?
- 同步和异步有什么区别?
- 并发和并行有什么区别?
- 死锁、活锁和饥饿是什么意思?
- Java 中线程状态有哪些?
- Java中实现多线程的方法有哪些?
- JVM 中可以创建多少个线程?
- Java中有哪些方法可以终止线程运行?
- 如何理解 Java 的线程中断机制?
- 线程的等待(wait)和通知(notify)是什么情况?
- 线程的挂起(suspend)和继续执行(resume)是什么情况?
- 线程的等待线程结束(join)和谦让(yield)是什么情况?
- Java 的守护线程是什么情况?
- 说说你对 finalize 的看法?
- synchronized 的实现原理是什么?
- volatile 的实现原理是什么?
- ReentrantLock 是什么?怎么用?
- Condition 是什么?怎么用?
- 结合 JDK8 源码深入分析 AQS 和 ReentrantLock 的实现原理
- Semaphore 是什么?怎么用?
- CountDownLatch 是什么?怎么用?
- CyclicBarrier 是什么?怎么用?
- ReadWriteLock 是什么?怎么用?
- LockSupport 是什么?怎么用?
- 如何对请求进行限流?
- Executors 源码解析(JDK8)
- 一篇文章搞懂 ThreadPoolExecutor
- UncaughtExceptionHandler 是什么?线程池如何处理异常?
- 线程池如何打印堆栈信息?
- 你了解 Guava 中有哪些线程池的扩展内容吗?
- 一篇文章搞懂 Timer
- 一篇文章搞懂 CompletionService
- 你了解 ConcurrentModificationException 吗?
- 一篇文章搞懂 CopyOnWriteArrayList
- BlockingQueue 源码解析(JDK8)
- ConcurrentLinkedQueue 源码解析(JDK8)
- 一篇文章搞懂 SynchronousQueue
- 一篇文章搞懂 DelayQueue
- 一篇文章搞懂 ConcurrentSkipListMap
- 一篇文章搞懂 ThreadLocal
- 一篇文章学会使用 CompletableFuture(JDK9)
- 一篇文章搞懂 HashMap 的实现原理
- 一篇文章搞懂 ConcurrentHashMap 的实现原理
- 你了解 StampedLock 吗?
- 你了解 LongAdder 吗?和 AtomicLong 相比有什么优缺点?
- 你了解 LongAccumulator 吗?
- 结合 JDK 源码学习提高锁性能的技巧
- 一篇文章全面掌握 Java 中的锁概念
- 你了解 CAS 吗?
- 你了解 AtomicInteger 吗?
- 你了解 AtomicReference和 AtomicStampedReference 吗?
- Java 中的数组可以无锁实现并发吗?
- 你了解 AtomicIntegerFieldUpdater 吗?
- 你知道工作窃取算法(Work Stealing)?
- 你知道什么是毒丸对象(Poison Pill)吗?
- 你了解 Disruptor 吗?
- 怎样实现并行搜索?
- 怎样实现并行排序?
- 你了解并发设计模式有哪些吗?
- 线程的引入会带来哪些开销?
- 并发编程有哪些缺点?
- 怎样正确的进行并发编程?
参考文献
- 《实战Java高并发程序设计(第2版)》 葛一鸣著
- 《Java并发编程实战》 (美)盖茨(Goetz,B.)等著;童云兰等译
- 《Java程序员面试笔试真题与解析》猿媛之家编著
- https://www.cnblogs.com/zh-ch/p/13138587.html
- Lock和synchronized的区别和使用
- Java线程的6种状态及切换,透彻讲解
- Java Thread问题集之Thread.stop篇