【校招VIP】操作系统考点之多线程

124 阅读2分钟
考点介绍:

多线程可以说是 Java 进阶必备的知识点了,也是面试中必备的考点。可能不少人能对多线程说上一二,但这还远远不够,如果碰到比较有经验的面试官再继续追问,很可能会被吊打。

本期分享的操作系统考点之多线程,分为试题、文章以及视频三部分。

答案详情解析和文章内容可扫下方二维码或链接即可查看!

一、考点题目

1. 既然 start() 方法会调用 run() 方法,为什么我们调用 start() 方法,而不直接调用 run() 方法?

正确答案: 当你调用 start() 方法时,它会新建一个线程然后执行 run() 方法中的代码。如果直接调用 run() 方法,并不会创建新线程,方法中的代码会在当前调用者的线程中执行。

2. 守护线程和非守护线程有怎么区别?

正确答案: 程序运行完毕,jvm会等待非守护线程完成后关闭,但是jvm不会等待守护线程。守护线程最典型的例子就是GC线程。

3. 多线程上下文切换是什么?

正确答案: 多线程上下文切换就是指CPU控制权由一个已经正在运行的线程切换到另外一个就绪并等待获取CPU执行权的线程的过程。

4、有哪两种创建线程的方式?这两种方式更优的是哪个?

正确答案: 两种方式:通过实现java.lang.Runnable或者通过扩展java.lang.Thread类。

5.一个线程如果出现了运行时异常怎么办?

正确答案: 如果该异常没有被捕获的话,这个线程就停止执行了。但是要注意:如果这个线程持有某个对象的监视器,则这个对象监视器会被立即释放。

(答案点击下方链接或者扫海报二维码查看哦)

二、考点文章

1. 线程同步相关术语总结

对于初次接触线程同步的前端来说,总是对互斥锁、条件变量、信号量等术语傻傻分不清楚,这里根据自己的理解简单做下总结,如有疏漏之处,欢迎大家批评指正。

2. Python多线程的原理与实现

asyncio提供了完善的异步IO支持; 异步操作需要在coroutine中通过yield from完成; 多个coroutine可以封装成一组Task然后并发执行。

(扫下方海报二维码查看完整版)

三、考点视频

进程和线程的关系?

更多资讯可搜索校招VIP小程序查看哦。

PC端链接:xiaozhao.vip/dTopic/deta…

移动端链接:m.xiaozhao.vip/dTopic/deta…

校招考点专题宣传单 (18).png