概念区分

1、程序、进程、线程简洁概括

程序是二进制文件,是永久性的,一个进程对应一个程序,一个程序可能对应多个进程

进程是承担分配系统资源的一个实体

线程是操作系统调度的基本单位

2、死锁产生的原因、产生的必要条件、产生的基本场景是什么?如何避免死锁?

产生原因:

(1)不同线程有交集

(2)使用锁不恰当

必要条件:

(1)互斥

(2)循环等待(不释放现有锁资源而申请锁资源)

(3)请求保持(请求新的锁资源,保持现有的锁资源)

(4)不剥夺

产生的基本场景:

(1) 同一线程先后两次调用lock, 第二次调用时,由于锁已被占用,该线程需要挂起等待别的线程释放锁,而锁被自己占用,该线程又被挂起而没机会释放锁,因此就永远处于挂起等待状态了

(2)线程A获得了锁1,线程B获得了锁2,线程A调用lock试图获得锁2,结果是需要挂起等待线程B释放锁2,而这时线程B也调用lock试图获得锁1,结果是需要挂起等待线程A释放锁1,于是线程A和线程B就永远处于挂起等待状态了

避免死锁:

       互斥这一属性不能破坏

对于循环等待:可释放现有锁

对于请求保持:可释放现有锁

对于不剥夺:优先级高可以剥夺

时间: 2025-01-12 13:45:47

概念区分的相关文章

nginx FastCGI中的概念区分

之前总没有把FastCGI的概念理解的很清楚,看到一段话,感觉说的很清楚了. nginx是支持fastcgi的.然而我们需要下一个fastcgi进程管理器,启动它才能执行fastcgi程序.(这里有几个概念要搞清楚:nginx是nginx,fastcgi是fastcgi,前者支持后者,但是前者本身没有集成后者(/的功能).对于ngingx,我们要配置conf.nginx来设置如何支持fastcgi.而对于fastcgi,我们写的fastcgi程序需要一个调度者:fastcgi进程管理器. 其实也

Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分

Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分 2014-01-23 13:14 10937人阅读 评论(16) 收藏 举报 分类: Android(22) 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 本文参考了谷歌开发者文档:http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#pro

十条概念区分信息安全与隐私保护【转自安全牛】

安全和隐私的区别在哪里? 由于缺乏统一认可的标准,许多中小企业的客户都会对一些安全专业的名词感到困惑,他们不明白这些专业名词之间的区别是什么,相似之处又是什么.对于企业的领导人来说,尤其是那些并没有专职人员去处理和解决这些问题的中小企业,理解这些名词的真正意义非常重要,以帮助他们在信息保护和隐私管理方面做出正确的决策. 那么,安全和隐私的区别到底在哪里呢?下面的七条概念能够帮助大家更好的理解二者的不同: 1.安全是过程,隐私是结果.2.安全是行动,隐私是成功行动后的结果3.安全是问题,隐私是对问

计算机编程基础:栈、堆、堆栈概念区分及理论知识

一.预备知识—程序的内存分配  一个由c/C++编译的程序占用的内存分为以下几个部分  1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结  构中的栈.  2.堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 .注意它与数据结构  中的堆是两回事,分配方式倒是类似于链表,呵呵.  3.全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在  一块区域, 未

Android View, Window,Activity概念区分(2)

(1)View:最基本的UI组件,表示屏幕上的一个矩形区域. (2)Window: 表示一个窗口,不一定有屏幕那么大,可以很大也可以很小:它包含一个View tree和窗口的layout 参数.View tree的root View可以通过getDecorView得到.还可以设置Window的Content View. (3)Activity:Activity包含一个Window,该Window在Activity的attach方法中通过调用PolicyManager.makeNewWindo创建

理解inode 以及 软链接和硬链接概念区分

inode简单理解 本文来源自网络文章,并针对文章内容加以批注和修改.希望能帮到你! 一. 磁盘设备 说到inode,首先必须要提及下<操作系统>中磁盘存储器的管理一节.磁盘设备是一种相当复杂的机电设备(比较详细的介绍可以参考blog硬盘内部硬件结构和工作原理详解 ). 磁盘设备可以包括一个或多个物理盘片,每个磁盘片分一个或两个存储面(如图(a)所示).每个磁盘面被组织成若干个同心环,这种环称为磁道track,各磁道之间留有必要的间隙.每条磁道又被逻辑上划分成若干个扇区sectors.在不同扇

一个概念区分:电压源逆变器和电流源逆变器

之前一直不是太清楚电压源逆变器和电流源逆变器之间的区别,今天正好遇到了一本书中说的关于这两者之间的区别,同时还给出了详细的配图说明,所以简单记录下,以后随着理解的深入再行补充!                  上面就是电流源和电压源逆变电路的结构图,似乎最大的区别就是直流侧和交流侧相连接时候,电流源采用电感和逆变桥连接,而电压源采用电容和逆变器连接!(具体情况还是搞的不太懂,不过这些都是概念性的东西,对研究没什么影响!)

Precision、Recall、Hamming loss、AP、MAP概念区分

Precision,准确率/查准率.Recall,召回率/查全率.这两个指标分别以两个角度衡量分类系统的准确率. 例如,有一个池塘,里面共有1000条鱼,含100条鲫鱼.机器学习分类系统将这1000条鱼全部分类为"不是鲫鱼",那么准确率也有90%(显然这样的分类系统是失败的),然而查全率为0%,因为没有鲫鱼样本被分对.这个例子显示出一个成功的分类系统必须同时考虑Precision和Recall,尤其是面对一个不平衡分类问题. 下图为混淆矩阵,摘自wiki百科: 根据上图,Precisi

同步 异步 阻塞 非阻塞概念区分

老张爱喝茶,废话不说,煮开水. 提前剧透一下:同步和非同步主要用来形容被调用线程,阻塞非阻塞用来形容主线程的.出场人物:老张(主线程),水壶(被调用线程)两把(普通水壶,简称水壶:会响的水壶,简称响水壶). 1 老张把水壶放到火上,立等水开.(主线程等着,不断轮询被调用线程,直到被调用线程返回结果)(同步阻塞)老张觉得自己有点傻2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有.(主线程去做其他事了,但是还会时不时的查看被调用线程是否会返回结果,也就是说被调用线程自己是没法告诉主线程