码迷,mamicode.com
首页 > 其他好文 > 详细

同步锁/互斥锁

时间:2015-11-13 06:35:55      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:

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

首先需要了解两个概念:

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

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

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

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

技术分享技术分享技术分享技术分享技术分享技术分享技术分享技术分享

同步锁/互斥锁

标签:

原文地址:http://www.cnblogs.com/CDSmallCat/p/4960898.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!