精选30道Java多线程面试题

精选30道Java多线程面试题_第1张图片

1、线程和进程的区别

2、实现线程有哪几种方式?

3、线程有哪几种状态?它们之间如何流转的?

4、线程中的start()和run()方法有什么区别?

5、怎么终止一个线程?如何优雅地终止线程?

6、ThreadLocal在多线程中扮演什么角色?

7、线程中的wait()和sleep()方法有什么区别?

8、多线程同步有哪几种方法?

9、什么是死锁?如何避免死锁?

10、多线程之间如何进行通信?

11、线程怎样返回结果?如何获取?

12、说说violatile关键字有什么用,和Synchronized有什么区别?

13、假如新建T1、T2、T3三个线程,如何保证它们按顺序执行?

14、怎么控制同一时间只有3个线程运行?

15、为什么要使用线程池?

16、说一说常用的几种线程池并讲讲其中的工作原理。

17、线程池启动线程submit()和execute()有什么不同?

18、说说多线程并发控制中的倒计时器、循环栅栏是什么,有什么应用场景?

19、什么是活锁、饥饿、无锁、死锁?

20、什么是原子性、可见性、有序性?

21、什么是守护线程?有什么用?

22、怎么中断一个线程?如何保证中断业务不影响?

23、yield()方法有什么用?

24、什么是重入锁,和Synchronized锁有什么区别?

25、Synchronized有哪几种用法?

26、Fork/Join框架是干什么的?

27、如何给线程传递参数?

28、说说线程安全的和不安全的集合。

29、什么是CAS算法?在多线程中有哪些应用。

30、你遇到过哪些多线程的问题?都是如何解决的?

关注公众号回复“答案”获取所有多线程面试题答案。

精选30道Java多线程面试题_第2张图片

你可能感兴趣的:(精选30道Java多线程面试题)