我是靠谱客的博主 腼腆发带,最近开发中收集的这篇文章主要介绍同步锁/互斥锁,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

互斥锁:是为了避免多个线程抢夺资源造成数据不准确问题而提出的,是为了限制同一时刻多个线程访问同一个数据.

首先需要了解两个概念:

1>多线程并发执行:我们都知道,如果不涉及两个线程之间传值或是共享资源的时候,多个线程之间是没有交集的,你走你的阳关道我走我的独木桥, 井水不犯河水,但是如果需要传值或是共享资源两个线程之间就有了碰头的机会.所以又出了一个线程同步的概念.

2>多线程同步执行:如果单从字面理解很难说清楚有什么区别,都是说多个线程在同一时刻各自做各自的事情,本来不同线程之间就没有什么关系, 这是多线程产生的意义.从多线程产生的意义来说,这个"同步执行"是不正常的!什么意思呢>本来都是独立的线程没有所谓的先后的顺序的,可是这个同步执行,就要求线程之间要有个顺序,所以他是非自然的,是人为扭曲的线程状态.我们通过代码来实现的多线程之间有序的执行的假象

好的我来多个比喻,比如两个中国人一个在南方一个在北方不认识没交集,两个人各自独立的生活,没什么关系,但是他们都要从北京飞到上海,且坐了同一班飞机,假设一次只能有一个人过安检,这个时候就要有个先后顺序,所以安检就是一把锁,这就是同步执行的一个场景,还有其他场景像之前文章写的断点续传,也是多线程碰面的场景,这个比喻与下面说的同步锁的场景有点不贴切,我是着重说了一下多线程碰面的场景,自己体会一下.上代码,程序是模拟多个窗口卖票的过程.

##还有那个锁不能加到循环外面:单说程序也不好说,我还是做个比喻,你家有三个卧室,你的目的是不然人进入你老婆的房间,你只要把你老婆卧室的门锁上就可以了,不是把房门锁上,那样客厅和其他卧室都不能进人了!

转载于:https://www.cnblogs.com/LDSmallCat/p/4960898.html

最后

以上就是腼腆发带为你收集整理的同步锁/互斥锁的全部内容,希望文章能够帮你解决同步锁/互斥锁所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部