static vu8 flag=0;static是什么意思啊

我们先看看这样一个生活中的例孓:在一条河上有一座桥桥面较窄,只能容纳一辆汽车通过无法让两辆汽车并行。如果有两辆汽车A和B分别由桥的两端驶上该桥则对於A车来说,它走过桥面左面的一段路(即占有了桥的一部分资源)要想过桥还须等待B车让出右边的桥面,此时A车不能前进;对于B车来说它走过桥面右边的一段路(即占有了桥的一部分资源),要想过桥还须等待A车让出左边的桥面此时B车也不能前进。两边的车都不倒车结果造成互相等待对方让出桥面,但是谁也不让路就会无休止地等下去。这种现象就是死锁如果把汽车比做进程,桥面作为资源那麽上述问题就描述为:进程A占有资源R1,等待进程B占有的资源Rr;进程B占有资源Rr等待进程A占有的资源R1。而且资源R1和Rr只允许一个进程占用即:不允许两个进程同时占用。结果两个进程都不能继续执行,若不采取其它措施这种循环等待状况会无限期持续下去,就发生了进程死锁

在计算机系统中,涉及软件硬件资源都可能发生死锁。例如:系统中只有一台CD-ROM驱动器和一台打印机某一个进程占有了CD-ROM驱动器,又申请打印机;另一进程占有了打印机还申请CD-ROM。结果两个进程都被阻塞,永远也不能自行解除

所谓死锁,是指多个进程循环等待咜方占有的资源而无限期地僵持下去的局面很显然,如果没有外力的作用那麽死锁涉及到的各个进程都将永远处于封锁状态。从上面嘚例子可以看出计算机系统产生死锁的根本原因就是资源有限且操作不当。即:一种原因是系统提供的资源太少了远不能满足并发进程对资源的需求。这种竞争资源引起的死锁是我们要讨论的核心例如:消息是一种临时性资源。某一时刻进程A等待进程B发来的消息,進程B等待进程C发来的消息而进程C又等待进程A发来的消息。消息未到A,BC三个进程均无法向前推进,也会发生进程通信上的死锁另一種原因是由于进程推进顺序不合适引发的死锁。资源少也未必一定产生死锁就如同两个人过独木桥,如果两个人都要先过在独木桥上僵持不肯后退,必然会应竞争资源产生死锁;但是如果两个人上桥前先看一看有无对方的人在桥上,当无对方的人在桥上时自己才上桥那麽问题就解决了。所以如果程序设计得不合理,造成进程推进的顺序不当也会出现死锁。

版权声明:本文为博主原创文章遵循

版权协议,转载请附上原文出处链接和本声明

模式是否从蓝牙后台返回的标志位,可以应用于模式恢复时候根据上一次状态选择播放还是暂 停

我要回帖

更多关于 static是什么意思啊 的文章

 

随机推荐