日期:2014-05-20  浏览次数:20801 次

两个线程的讨论问题
最近看到这两个问题, 不是很明白
什么是 线程饿死? 好晕!~
请高手指点一下, 谢谢

.举例线程饿死

.怎么避免死锁和饿死

------解决方案--------------------
所谓死锁是指在多道程序系统中,一组进程中的每一个进程军无限期等待被该组进程中的另一个进程所占有且永远不会释放的资源。
饥饿是指系统不能保证某个进程的等待时间上界,从而使该进程长时间等待,当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿。当饥饿到一定程度的进程所赋予的任务即使完成也不再具有实际意义时称该进程被饿死。下面我们就来分别讨论一下死锁与饥饿各自的特点。
详见上面的blog。
------解决方案--------------------
死线程应该指代的就是线程死锁了吧.这个可以看马士兵他说的很清楚好比一群什么哲学家吃饭问题好像互相拿着资源不放 然而只要一个人放开了资源就可以全部获取到
------解决方案--------------------
线程饥饿:假设有两个线程都执行上面的程序,并且工作代码需要运行较长时间。
Java code

  while(true){
    if(!lock){
      lock;
      do something,a very large work 
      unlock;
    }else
      sleep for a while;
  }

------解决方案--------------------
饥饿,

哈哈哈,比如说 飞机起降共享跑道,有军机 有民航机,军机有优先权,因为优先权的问题,从而导致,民航这类线程在一段时间内甚至一辈子都拿不到跑道(资源)

饥饿 starvation

翻译成中文乖乖的

同时欢迎来我的weibo 吐槽
哈哈
http://www.weibo.com/meiergo