武汉达内IT培训
美国上市IT培训机构

15827352908

热门课程

Java中的死锁如何避免

  • 时间:2018-11-30 14:20
  • 发布:武汉it培训
  • 来源:互联网

打破产生死锁的四个必要条件中的一个或几个,保证系统不会进入死锁状态。

一.打破互斥条件。即允许进程同时访问某些资源。但是,有的资源是不允许被同时访问的,像打印机等等,这是由资源本身的属性所决定的。所以,这种办法并无实用价值。

武汉it培训

二.打破不可抢占条件。即允许进程强行从占有者那里夺取某些资源。就是说,当一个进程已占有了某些资源,它又申请新的资源,但不能立即被满足时,它必须释放所占有的全部资源,以后再重新申请。它所释放的资源可以分配给其它进程。这就相当于该进程占有的资源被隐蔽地强占了。这种预防死锁的方法实现起来困难,会降低系统性能。

三.打破占有且申请条件。可以实行资源预先分配策略。即进程在运行前一次性地向系统申请它所需要的全部资源。如果某个进程所需的全部资源得不到满足,则不分配任何资源,此进程暂不运行。只有当系统能够满足当前进程的全部资源需求时,才一次性地将所申请的资源全部分配给该进程。由于运行的进程已占有了它所需的全部资源,所以不会发生占有资源又申请资源的现象,因此不会发生死锁。

四.打破循环等待条件,实行资源有序分配策略。采用这种策略,即把资源事先分类编号,按号分配,使进程在申请,占用资源时不会形成环路。所有进程对资源的请求必须严格按资源序号递增的顺序提出。进程占用了小号资源,才能申请大号资源,就不会产生环路,从而预防了死锁。

更多武汉IT培训相关资讯,详情请访问武汉达内

马上预约七天免费试听课

姓名:

电话:

上一篇:Java面试题:HashMap和Hashtable的区别
下一篇:扫盲啦!Java中的NIO,BIO,AIO分别是什么

Java中有关super限定

PHP的抽象类和接口解释说明

Java中的死锁如何避免

Java面试题:Overload和Override的区别

有位老师想和您聊一聊

选择城市和中心
贵州省

广西省

海南省