下载此文档

避免死锁的一个著名算法.doc


文档分类:研究报告 | 页数:约2页 举报非法文档有奖
1/2
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/2 下载此文档
文档列表 文档介绍
该【避免死锁的一个著名算法 】是由【春天资料屋】上传分享,文档一共【2】页,该文档可以免费在线阅读,需要了解更多关于【避免死锁的一个著名算法 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。避免死锁的一个著名算法死锁是进程死锁的简称,是由Dijkstra于1965年研究银行家算法时首先提出来的。它是计算机系统乃至并发程序设计中最难处理的问题之一。实际上,死锁问题不仅在计算机系统中存在,在我们日常生活中它也广泛存在。这里,我想抛开语言,用一个例子来聊一聊死锁问题,聊一聊它是怎么产生的?应该怎么防止?假设我们有一把蓝钥匙,可以打开一扇蓝色的门;以及一把红钥匙,可以打开一扇红色的门。两把钥匙被保存在一个皮箱里。同时我们定义六种行为:获取蓝钥匙,打开蓝色门,归还蓝钥匙,获取红钥匙,打开红色门,归还红钥匙。游戏规则是:一个人(线程)必须通过排列六种指令的顺序,打开两扇门,最后归还钥匙。随便排一下就好了啊,只要注意同一颜色的三种指令的先后顺序是“取钥匙->开门->还钥匙”就可以了。同样的规则,只不过换成两个线程同时进行这个游戏,每个线程都有各自的两扇门需要打开,但是两个线程共享一副红蓝钥匙。如果某个线程取钥匙时发现钥匙已被另一个线程取走了,它会等着,等到另一个线程归还了钥匙之后再继续。由于线程B在第四步的时候,需要等线程A运行到第六步归还了蓝钥匙之后才能继续,所以最后线程A先跑完,线程B后跑完,但是两个线程都成功的完成了任务。可以看到,当两个线程都运行到第三步的时候,线程 A在等线程B归还红钥匙,线程B在等线程A归还蓝钥匙,因而两个线程都永远卡在那里无法前进。这就是形成了死锁。

避免死锁的一个著名算法 来自淘豆网www.taodocs.com转载请标明出处.