| 1 |
进程和线程的区别? |
| 2 |
进程之间怎么进行通信? |
| 3 |
线程之间怎么进行通信? |
| 4 |
什么是原子性? |
| 5 |
什么是可见性? |
| 6 |
什么是有序性? |
| 7 |
long、double 读写是原子性的吗? |
| 8 |
i++、i– 操作是原子性的吗? |
| 9 |
为什么要使用多线程? |
| 10 |
创建线程有哪几种方式? |
| 11 |
什么是守护线程? |
| 12 |
线程的状态有哪几种?怎么流转的? |
| 13 |
线程的优先级有什么用? |
| 14 |
我们常说的 JUC 是指什么? |
| 15 |
i++ 是线程安全的吗? |
| 16 |
怎么让 3 个线程按顺序执行? |
| 17 |
编程实现让 3 个线程按顺序执行 |
| 18 |
join 方法有什么用?什么原理? |
| 19 |
如何让一个线程休眠? |
| 20 |
启动一个线程是用 start 还是 run 方法? |
| 21 |
一个线程多次调用 start 会发生什么? |
| 22 |
start 和 run 方法有什么区别? |
| 23 |
sleep 和 wait 方法有什么区别? |
| 24 |
Thread.yield 方法有什么用? |
| 25 |
yield 和 sleep 有什么区别? |
| 26 |
怎么理解 Java 中的线程中断? |
| 27 |
线程中断与 stop 的区别? |
| 28 |
你怎么理解多线程分组? |
| 29 |
你怎么理解 wait、notify、notifyAll? |
| 30 |
wait、notify、notifyAll 它们并不是 Thread 类中的方法,而是 Object 类中的,为什么呢? |
| 31 |
同步和异步的区别? |
| 32 |
什么是死锁? |
| 33 |
怎么避免死锁? |
| 34 |
什么是活锁? |
| 35 |
什么是无锁? |
| 36 |
什么是线程饥饿? |
| 37 |
编程实现一个多线程死锁的例子 |
| 38 |
AtomicInteger 的底层实现是怎样的? |
| 39 |
什么是 CAS? |
| 40 |
CAS 有什么缺点? |
| 41 |
CAS 底层使用了哪个操作类? |
| 42 |
CAS 在 JDK 中有哪些应用? |
| 43 |
用伪代码写一个 CAS 算法的核心 |
| 44 |
多线程情况下,进行数字累加(count++)要注意什么? |
| 45 |
有了 AtomicInteger,为什么 JDK 又搞出了 LongAdder? |
| 46 |
AtomicXXX 和 LongAdder,推荐用哪个? |
| 47 |
LongAdder 为什么性能更好?原理是什么? |
| 48 |
LongAdder 性能那么好,那有没有什么缺点呢? |
| 49 |
阻塞和非阻塞的区别? |
| 50 |
并发和并行的区别? |
| 51 |
为什么不推荐使用 stop 停止线程? |
| 52 |
如何优雅地终止一个线程? |
| 53 |
Synchronized 同步锁有哪几种用法? |
| 54 |
什么是重入锁(ReentrantLock)? |
| 55 |
重入锁有哪些重要的方法? |
| 56 |
重入锁怎么用? |
| 57 |
重入锁你怎么理解 “重入”? |
| 58 |
synchronized 是重入锁吗? |
| 59 |
Synchronized 与 ReentrantLock 的区别? |
| 60 |
synchronized 锁的是什么? |
| 61 |
什么是读写锁? |
| 62 |
有没有比 ReadWriteLock 读写锁更快的锁? |
| 63 |
公平锁和非公平锁的区别? |
| 64 |
有哪些锁优化的方式? |
| 65 |
什么是偏向锁? |
| 66 |
什么是轻量级锁? |
| 67 |
什么是自旋锁? |
| 68 |
什么是锁消除? |
| 69 |
什么是锁粗化? |
| 70 |
什么是重量级锁? |
| 71 |
谈谈多线程中的 ExecutorService 接口? |
| 72 |
谈谈多线程中的 ThreadPoolExecutor 类? |
| 73 |
什么是线程池? |
| 74 |
使用线程池有什么好处? |
| 75 |
创建一个线程池有哪些核心参数? |
| 76 |
线程池的工作流程是怎样的? |
| 77 |
线程池 ExecutorService 和 Executors 的区别? |
| 78 |
Java 里面有哪些内置的线程池? |
| 79 |
为什么阿里不让用 Executors 创建线程池? |
| 80 |
线程池的拒绝策略有哪几种? |
| 81 |
如何提交一个线程到线程池? |
| 82 |
线程池 submit 和 execute 有什么区别? |
| 83 |
如何查看线程池的运行状态? |
| 84 |
如何设置线程池的大小? |
| 85 |
如何关闭线程池? |
| 86 |
谈谈多线程中的 CompletionService 接口? |
| 87 |
谈谈多线程中的 ExecutorCompletionService 类? |
| 88 |
CompletionService 用完需要关闭吗?怎么关闭? |
| 89 |
Java 实现异步编程有什么方案? |
| 90 |
谈谈多线程中的 CompletableFuture 类? |
| 91 |
谈谈多线程中的 CompletionStage 接口? |
| 92 |
AQS 是什么? |
| 93 |
AQS 的底层原理是什么? |
| 94 |
Fork Join 框架有什么用? |
| 95 |
Fork Join 框架的运行流程? |
| 96 |
Fork Join 框架底层什么机制? |
| 97 |
Fork Join 框架核心类有哪些? |
| 98 |
使用 Fork Join 框架有什么需要注意的? |
| 99 |
编程实现使用 Fork Join 框架的例子 |
| 100 |
ThreadLocal 有什么用? |
| 101 |
ThreadLocal 有什么副作用? |
| 102 |
volatile 关键字有什么用? |
| 103 |
volatile 有哪些应用场景? |
| 104 |
CyclicBarrier 有什么用? |
| 105 |
CountDownLatch 有什么用? |
| 106 |
CountDownLatch 与 CyclicBarrier 的区别? |
| 107 |
Semaphore 有什么用? |
| 108 |
Exchanger 有什么用? |
| 109 |
LockSupport 有什么用? |
| 110 |
Java 中原子操作的类有哪些? |
| 111 |
什么是 ABA 问题? |
| 112 |
怎么解决 ABA 问题? |
| 113 |
Java 并发容器,你知道几个? |
| 114 |
什么是阻塞队列? |
| 115 |
阻塞队列有哪些常用的应用场景? |
| 116 |
Java 中的阻塞的队列有哪些? |
| 117 |
什么是协程? |
| 118 |
Java 支持协程吗? |
| 119 |
Java 支持协程的框架有哪些? |
| 120 |
SimpleDateFormat 是线程安全的吗?为什么?以及怎么解决? |
| 121 |
parallelStream 的底层实现是什么? |
| 122 |
parallelStream 有没有遇到什么坑? |
| 123 |
parallelStream 是线程安全的吗? |
| 124 |
parallelStream 默认启动了多少线程? |
| 125 |
parallelStream 如何修改默认线程数? |
| 126 |
parallelStream 和 stream 的区别? |
| 127 |
parallelStream 和 stream 哪个快? |