线程冲突
大约 2 分钟
线程冲突
虚构的小故事
多线程冲突了怎么办?
先来看看虚构的小故事
已经晚上 11 点了,程序员小明的双手还在键盘上飞舞着,眼神依然注视着的电脑屏幕。
没办法这段时间公司业绩增长中,需求自然也多了起来,加班自然也少不了。
天气变化莫测,这时窗外下起了蓬勃大雨,同时闪电轰鸣。
但这一丝都没有影响到小明,始料未及,突然一道巨大的雷一闪而过,办公楼就这么停电了,随后整栋楼都在回荡着的小明那一声撕心裂肺的「卧槽」。
此时,求小明的心里面积有多大?
等小明心里平复后,突然肚子非常的痛,想上厕所,小明心想肯定是晚上吃的某堡王有问题。
整栋楼都停了电,小明两眼一抹黑,啥都看不见,只能靠摸墙的方法,一步一步的来到了厕所门口。
到了厕所(共享资源),由于实在太急,小明直接冲入了厕所里,用手摸索着刚好第一个门没锁门,便夺门而入。
这就荒唐了,这个门里面正好小红在上着厕所,正好这个厕所门是坏了的,没办法锁门。
黑暗中,小红虽然看不见,但靠着声音,发现自己面前的这扇门有动静,觉得不对劲,于是铆足了力气,用她穿着高跟鞋脚,用力地一脚踢了过去。
小明很幸运,被踢中了「命根子」,撕心裂肺地喊出了一个字「痛」!
大纲
故事说完了,扯了那么多,实际上是为了说明,对于共享资源,如果没有上锁,在多线程的环境里,那么就可能会发生翻车现场。
接下来,用 30+
张图,带大家走进操作系统中避免多线程资源竞争的互斥、同步的方法。
- 提纲
- 竞争与协作
- 互斥的概念
- 同步的概念
- 互斥与同步的实现
- 锁
- 信号量
- 生产者-消费者问题
- 经典同步问题
- 哲学家就餐问题
- 读者-写着问题
- 竞争与协作
链接到当前文件 0
没有文件链接到当前文件