博客
关于我
2020-07-15:死锁与活锁的区别,死锁与饥饿的区别?
阅读量:269 次
发布时间:2019-03-01

本文共 375 字,大约阅读时间需要 1 分钟。

福哥答案2020-07-15:

死锁:是指两个或两个以上的进程(或线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。

产生死锁的必要条件:
1、互斥条件:所谓互斥就是进程在某一时间内独占资源。
2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
3、不剥夺条件:进程已获得资源,在末使用完之前,不能强行剥夺。
4、循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
活锁:任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试,失败,尝试,失败。
活锁和死锁的区别在于,处于活锁的实体是在不断的改变状态,所谓的“活”, 而处于死锁的实体表现为等待;活锁有可能自行解开,死锁则不能。
饥饿:一个或者多个线程因为种种原因无法获得所需要的资源,导致一直无法执行的状态。


转载地址:http://eqmo.baihongyu.com/

你可能感兴趣的文章
【python】输出到文件, f.write与print
查看>>
【今日CV 计算机视觉论文速览 第97期】Tue, 9 Apr 2019
查看>>
【mAP】关于目标检测mAP的一些理解
查看>>
庄子:谁知南华秋水意?
查看>>
android 在一个应用中启动另一个应用
查看>>
Thread.sleep() 和 Thread.yield() 区别
查看>>
Kotlin 简单优雅的高阶函数
查看>>
ES6 箭头函数: () => {} 与匿名函数 function() {}
查看>>
13.13 java.util.ConcurrentModificationException
查看>>
UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
查看>>
第14章 使用Kotlin 进行 Android 开发(2)
查看>>
Spring Boot 2.0 与 Spring 5 项目实战开发(基于 Kotlin & Java )
查看>>
第1讲 快速入门 《Kotlin 极简教程 》
查看>>
《拾叶集》一个会写诗的程序员 二零一八年十月九日
查看>>
Kotlin + Spring Boot :下一代 Java 服务端开发 (视频)
查看>>
《Spring Boot 2.0 极简教程》附录 I : Spring 5.0 新特性
查看>>
IDEA 工程文件 UTF-8 编码设置
查看>>
10年后6G将问世,速度有望比5G快100倍
查看>>
5G蝴蝶效应:孕育万亿级产业
查看>>
华为超越三星拿下第一!2019年全球5G手机出货量榜单揭晓
查看>>