.. |
assets
|
u
|
2022-05-11 18:46:27 +08:00 |
00 由点及面,搭建你的 Java 并发知识网.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
01 为何说只有 1 种实现线程的方法?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
02 如何正确停止线程?为什么 volatile 标记位的停止方法是错误的?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
03 线程是如何在 6 种状态之间转换的?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
04 waitnotifynotifyAll 方法的使用注意事项?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
05 有哪几种实现生产者消费者模式的方法?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
06 一共有哪 3 类线程安全问题?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
07 哪些场景需要额外注意线程安全问题?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
08 为什么多线程会带来性能问题?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
09 使用线程池比手动创建线程好在哪里?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
10 线程池的各个参数的含义?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
11 线程池有哪 4 种拒绝策略?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
12 有哪 6 种常见的线程池?什么是 Java8 的 ForkJoinPool?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
13 线程池常用的阻塞队列有哪些?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
14 为什么不应该自动创建线程池?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
15 合适的线程数量是多少?CPU 核心数和线程数的关系?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
16 如何根据实际需要,定制自己的线程池?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
17 如何正确关闭线程池?shutdown 和 shutdownNow 的区别?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
18 线程池实现“线程复用”的原理?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
19 你知道哪几种锁?分别有什么特点?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
20 悲观锁和乐观锁的本质是什么?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
21 如何看到 synchronized 背后的“monitor 锁”?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
22 synchronized 和 Lock 孰优孰劣,如何选择?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
23 Lock 有哪几个常用方法?分别有什么用?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
24 讲一讲公平锁和非公平锁,为什么要“非公平”?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
25 读写锁 ReadWriteLock 获取锁有哪些规则?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
26 读锁应该插队吗?什么是读写锁的升降级?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
27 什么是自旋锁?自旋的好处和后果是什么呢?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
28 JVM 对锁进行了哪些优化?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
29 HashMap 为什么是线程不安全的?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
30 ConcurrentHashMap 在 Java7 和 8 有何不同?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
31 为什么 Map 桶中超过 8 个才转为红黑树?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
32 同样是线程安全,ConcurrentHashMap 和 Hashtable 的区别.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
33 CopyOnWriteArrayList 有什么特点?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
34 什么是阻塞队列?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
35 阻塞队列包含哪些常用的方法?add、offer、put 等方法的区别?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
36 有哪几种常见的阻塞队列?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
37 阻塞和非阻塞队列的并发安全原理是什么?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
38 如何选择适合自己的阻塞队列?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
39 原子类是如何利用 CAS 保证线程安全的?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
40 AtomicInteger 在高并发下性能不好,如何解决?为什么?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
41 原子类和 volatile 有什么异同?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
42 AtomicInteger 和 synchronized 的异同点?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
43 Java 8 中 Adder 和 Accumulator 有什么区别?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
44 ThreadLocal 适合用在哪些实际生产的场景中?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
45 ThreadLocal 是用来解决共享资源的多线程访问的问题吗?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
46 多个 ThreadLocal 在 Thread 中的 threadlocals 里是怎么存储的?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
47 内存泄漏——为何每次用完 ThreadLocal 都要调用 remove()?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
48 Callable 和 Runnable 的不同?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
49 Future 的主要功能是什么?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
50 使用 Future 有哪些注意点?Future 产生新的线程了吗?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
51 如何利用 CompletableFuture 实现“旅游平台”问题?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
52 信号量能被 FixedThreadPool 替代吗?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
53 CountDownLatch 是如何安排线程执行顺序的?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
54 CyclicBarrier 和 CountdownLatch 有什么异同?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
55 Condition、object.wait() 和 notify() 的关系?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
56 讲一讲什么是 Java 内存模型?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
57 什么是指令重排序?为什么要重排序?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
58 Java 中的原子操作有哪些注意事项?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
59 什么是“内存可见性”问题?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
60 主内存和工作内存的关系?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
61 什么是 happens-before 规则?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
62 volatile 的作用是什么?与 synchronized 有什么异同?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
63 单例模式的双重检查锁模式为什么必须加 volatile?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
64 你知道什么是 CAS 吗?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
65 CAS 和乐观锁的关系,什么时候会用到 CAS?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
66 CAS 有什么缺点?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
67 如何写一个必然死锁的例子?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
68 发生死锁必须满足哪 4 个条件?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
69 如何用命令行和代码定位死锁?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
70 有哪些解决死锁问题的策略?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
71 讲一讲经典的哲学家就餐问题.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
72 final 的三种用法是什么?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
73 为什么加了 final 却依然无法拥有“不变性”?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
74 为什么 String 被设计为是不可变的?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
75 为什么需要 AQS?AQS 的作用和重要性是什么?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
76 AQS 的内部原理是什么样的?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
77 AQS 在 CountDownLatch 等类中的应用原理是什么?.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |
78 一份独家的 Java 并发工具图谱.md.html
|
add
|
2022-05-11 18:57:05 +08:00 |