JAVA语言之浅谈操作系统底层锁的实现
小标 2018-07-24 来源 : 阅读 1576 评论 0

摘要:本文主要向大家介绍了JAVA语言之浅谈操作系统底层锁的实现,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言之浅谈操作系统底层锁的实现,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

在写代码时经常会使用到锁,很多的锁是需要操作系统支持的,系统层面的锁是如何实现的呢?

 其实系统的锁实现和平时我们自己实现锁的过程是一样的:

1.读取锁标志位read lock

 

2.判断标志位锁状态lock status

 

3.上锁(如果已经上锁则返回失败)

 

4.返回成功

 

5.执行程序

 

6.释放锁

但是这个过程不得不考虑的是当有两个线程同时拿到标志位都是0怎么办,很简单,直接把1,2,3作为一个原子操作就行了,也就是操作系统层面的关闭中断来保证123是一个原子操作。这样的话就不会有两个线程同时get lock了,但是问题又来了这是在单核上没有问题,可是现在计算机都是多核该如何处理呢,这就涉及到计算机的硬件总线支持了。

总线

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。(以上摘抄百度)

多核计算机上提供了锁总线的支持来实现锁,然后再配合关闭中断的原子操作就能保证锁的正确性了。

最后,由于计算机的硬件机制和OS的配合就能实现锁,基于锁就可以实现各种各样的同步功能了。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 3 不喜欢 | 0
看完这篇文章有何感觉?已经有3人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程