2022 最新整理的 Java 多线程面试题(最新版 Java 面试宝典)

2022-08-25 15:34:50 浏览数 (2)

Java 多线程面试题(共120 )

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 哪个快?


获取参考答案

扫码关注Java技术栈公众号,在后台回复:答案。

扫码关注Java技术栈公众号,在后台回复:答案。扫码关注Java技术栈公众号,在后台回复:答案。

--------------------------------------------------

版权声明:未经授权,禁止私自复制、盗取、采集、转载到其他平台。

本文链接:https://www.javastack.cn/java-thread-mst/

--------------------------------------------------

0 人点赞