百分之九十会提到的多线程面试题,是我的回答有问题?

摘要:

每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。

15316292-2c3425be63a86221

多线程

线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程.

线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文.多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定. 线程的运行中需要使用计算机的内存资源和CPU。

15316292-1d23d4c4f5e6a165.png

多线程面试题(问题解析在后面):

1、为什么用线程池?

2、线程池参数什么意思?

3、讲一讲线程池中的threadpoolexecutor,每个参数干什么用的?

4、说一下线程池内部使用规则

5、用过AtomicInteger吗?怎么用的?

6、用过threadlocal吗?怎么用的?

8、【上机】Java中通过哪些方式创建多线程类? 分别使用代码说明。并调用之。

9、Thread类有没有实现Runnable接口?

10、当调用一个线程对象的start方法后,线程马上进入运行状态吗?

11、下面的代码,实际上有几个线程在运行:

12、线程的几种状态

13、说说:sleep、yield、join、wait方法的区别。

14、为什么不推荐使用stop和destroy方法来结束线程的运行?

15、写个代码说明,终止线程的典型方式。

16、A线程的优先级是10,B线程的优先级是1,那么当进行调度时一定会调用A吗?

17、synchronize修饰在方法前是什么意思?

18、使用Timer和TimerTask实现定时执行,定时在每天下午17:00执行。

19、wait方法被调用时,所在线程是否会释放所持有的锁资源? sleep方法呢?

20、wait、notify、notifyAll是在Thread类中定义的方法吗?作用分别是什么?

21、notify是唤醒所在对象wait pool中的第一个线程吗?


15316292-0599ab7b7a02d364.png

面试问题解析:

问题:为什么用线程池?

解析:有时候,系统需要处理非常多的执行时间很短的请求,如果每一个请求都开启一个新线程的话,系统就要不断的进行线程的创建和销毁,有时花在创建和销毁线程上的时间会比线程真正执行的时间还长。

而且当线程数量太多时,系统不一定能受得了。

使用线程池主要为了解决一下几个问题:

通过重用线程池中的线程,来减少每个线程创建和销毁的性能开销。

对线程进行一些维护和管理,比如定时开始,周期执行,并发数控制等等。

问题:A线程的优先级是10,B线程的优先级是1,那么当进行调度时一定会调用A吗?

解析:不一定。线程优先级对于不同的线程调度器可能有不同的含义,可能并不是用户直观的推测。

见代码ThreadPriorityTest

问题:synchronize修饰在方法前是什么意思?

解析:一次只能有一个线程进入该方法,其他线程要想在此时调用该方法,只能排队等候,当前线程(就是在synchronized方法内部的线程)执行完该方法后,别的线程才能进入.

问题:wait方法被调用时,所在线程是否会释放所持有的锁资源? sleep方法呢?

解析:wait:释放CPU,释放锁;

sleep:释放CPU,不释放锁。

更多解析在文末

附录:

并发编程学习路线图

包含:

1、线程基础,线程之间的共享和协作

2、线程的并发工具类

3、原子操作CAS

4、显式锁和AQS

5、并发容器

6、线程池

7、并发安全

8、实战项目(2个)

9、JMM和底层实现原理

15316292-4e24174a53a4fa1a

小结

当留给你准备面试的时间不充足时,要“以始为终”的去思考你最终展示在面试官哪里的状态。先写好简历,然后以这种目标去针对性的复习技术知识点。确保简历上写到的技术点,都有话可聊,都可以聊到关键点上。

面试也是要看状态的,当所有的问题你都可以侃侃而谈,这时你的状态自然是最好的。

祝各位面试顺利!

需要面试题汇总(可私信我免费领取答案)私信【面试资料】即可领取

附加java开发的资料(面试资源与经验总结,Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术视频教程资料,架构思维导图,以及面试资料,了解最新的学习动态;了解最新的阿里、京东招聘资讯)

猜你喜欢

转载自blog.csdn.net/weixin_34163741/article/details/87077277