码迷,mamicode.com
首页 > 其他好文 > 详细

概念区分

时间:2016-07-17 02:25:16      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:概念区分

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就永远处于挂起等待状态了

避免死锁:

       互斥这一属性不能破坏

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

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

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



概念区分

标签:概念区分

原文地址:http://frankenstein.blog.51cto.com/10918184/1827041

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!