加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

大厂口试官问我Java线程和操纵体系线程的接洽

发布时间:2021-05-28 13:58:02 所属栏目:移动互联 来源:互联网
导读:这个题目是安琪拉之前口试被问到的一个题目,正好顺着上一篇文章先容完线程挪用时的用户态和内核态的切换,后续把Java 并发的都一路讲了。 口试官:听前一个口试

大厂口试官问我Java线程和操纵体系线程的接洽

这个题目是安琪拉之前口试被问到的一个题目,正好顺着上一篇文章先容完线程挪用时的用户态和内核态的切换,后续把Java 并发的都一路讲了。

口试官:听前一个口试官说你Java并发这块把握的不错,我们深入的交换一下;

我: 看了看口试官头部稀少的结缔组织,已然认为这时势试不简朴,不外亏得事前把安琪拉的博客看了个遍,有所筹备,我答复说:咳咳,把握的还算可以。

口试官:Java线程用过的吧?

我:用过。

口试官:那你给我讲讲Java线程和操纵体系的?

我:啊!!!

剧情不该该这样的啊,开场不该该先是 synchronized 可能 volatile,再然后是线程池和AQS,怎么上来就整这玩意。

我:好的,那我分三段讲,

用户态的线程

内核态的线程

Java 线程源码

1. 用户态的线程

第一阶段:

着实早期的时辰,操纵体系是没有线程的观念,线程是后头加进来的,操纵体系刚开始只有历程,操纵体系分派资源的最小单元是历程,历程与历程之间相干断绝,每个历程有本身的内存空间,文件描写符,CPU调治以历程作为最小调治单位;

第二阶段:

初期的多线程,线程是在用户空间下实现的。

什么意思?我们都知道内存分用户空间和体系空间,体系空间是给操纵体系行使的,用户空间是应用措施行使的,应用措施假如必要会见体系空间,必要举办体系挪用,从用户态切换到内核态,这里具体可以参考我上一篇文章: [讲讲用户空间和内核空间]

那怎么在用户空间实现的多线程呢?

现实上是操纵体系按历程维度来调治,操纵体系是不去管你用户线程的切换的,应用措施本身在用户空间实现线程的建设、维护和调治。模子如下图:

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读