美文网首页Java 杂谈互联网科技Spring-Boot
百分之九十会提到的多线程面试题,是我的回答有问题?

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

作者: AGI大模型阿南 | 来源:发表于2019-01-20 21:16 被阅读2次

摘要:

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

多线程

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

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

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

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中的第一个线程吗?

面试问题解析:

问题:为什么用线程池?

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

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

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

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

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

问题: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和底层实现原理

小结

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

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

祝各位面试顺利!

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

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

相关文章

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

    摘要: 每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的动态执...

  • 我结婚你会来吗

    关于男女之间有没有纯洁的友谊,大多数女性会回答“有”,而百分之九十的男性——至少我接触过的来说——会很肯定地回答,...

  • 网络编程 - 收藏集 - 掘金

    15 个高级 Java 多线程面试题及回答 - 后端 - 掘金在任何Java面试当中多线程和并发方面的问题都是必不...

  • Tools - 收藏集 - 掘金

    15 个高级 Java 多线程面试题及回答 - 后端 - 掘金在任何Java面试当中多线程和并发方面的问题都是必不...

  • java线程面试题大全

    java线程面试题大全1、15个Java线程并发面试题和答案2、15个高级Java多线程面试题及回答3、GC线程是...

  • 我没钱,但还是想努力

    有一句经典的话:钱不是问题,问题是没钱 曾经看了同学发了说说,内容是:他们说有钱能解决百分之九十的问题,但发现对我...

  • 另外一种生活

    我问过一些家长朋友,如果你的孩子放下手机,你会让他干些什么呢,他们的回答也许会和大家不谋而合,百分之九十的人都说,...

  • 花花世界,在人间已是癫

    代回答:我为什么喜欢花。 有朋友说,看你的微信,百分之九十是花吧。 有好多人喜欢,我一天不发,就会问一个为什么;当...

  • 我的蟹农朋友

    有许多人讲:“去阳澄湖吃蟹,百分之九十的人吃的是汰浴蟹!"我可以很自信地回答:“我们去阳澄湖吃的就是正宗的阳澄湖大...

  • 想进大厂?50个多线程面试题,你会多少?(一)

    想进大厂?50个多线程面试题,你会多少?(一)

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/neindqtx.html