知识大全 多线程中的死锁问题

Posted

篇首语:业精于勤,荒于嬉。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 多线程中的死锁问题相关的知识,希望对你有一定的参考价值。

   /*

   * 死锁

   * 同步中嵌套同步

   * 也就是有两个房子 A和B 主人A 拿着B房间的锁 B主人拿着A房间的锁 A拿不到B的锁 就进不去房间

   * 而B拿不到A的锁 也进不去房间 两人相持不下

   * 死锁属于操作系统的概念了……其实很好理解 最经典的例子就是 You first You first问题

   * 一个门 两个 中国人 都很有礼貌 走碰头了 都想过这个门 两个人都谦让对方先过 结果是 谁也过不去……

   * 还有就是哲学家问题!说是四个哲学家坐在桌子上等著吃饭 每个人一边一根筷子 四个人四根筷子

   * 一个人拿到两根筷子的时候才能吃 否则等待…… 有一种情况就是 四个人 每个人都拿了一根筷子

   * 还没有人放手 结果四个人都饿死……

   *

   *

   * */

   class Lock implements Runnable

  

       private boolean flag;

       public Lock(boolean flag)

      

           this flag=flag;

      

       public void run()

      

           if(flag)

          

               while(true)

              

                   synchronized(MyLock locka) //a锁中嵌套 b锁

                  

                       System out println( if locka );

                       synchronized(MyLock lockb)

                      

                           System out println( if lockb );

                      

                  

              

          

           else

          

            while(true)

           

                   synchronized(MyLock lockb) //b 锁中嵌套a锁

                  

                       System out println( else lockb );

                       synchronized(MyLock locka)

                      

                           System out println( MyLock locka );

                      

                  

           

          

  

      

  

  

   class MyLock

  

       static Object locka=new Object();

       static Object lockb=new Object();

  

  

  

  

   public class LockDemo

  

       public static void main(String[] args)

  

           Thread lock =new Thread(new Lock(false));

           Thread lock =new Thread(new Lock(true));

           lock start();

           lock start();

      

  

cha138/Article/program/Java/gj/201311/27430

相关参考

知识大全 Java Swing多线程死锁问题解析

JavaSwing多线程死锁问题解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在基于Jav

知识大全 Java多线程问题及处理(笔记)

Java多线程问题及处理(笔记)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  死锁  多线程编

知识大全 死锁

  由于线程可能进入堵塞状态而且由于对象可能拥有同步方法——除非同步锁定被解除否则线程不能访问那个对象——所以一个线程完全可能等候另一个对象而另一个对象又在等候下一个对象以此类推这个等候链最可怕的情形

知识大全 Java多线程处理三大讲解

Java多线程处理三大讲解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!死锁  

知识大全 并发协作-死锁

Java线程:并发协作-死锁  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

什么是“死锁”?出现死锁的条件有哪些?

  单机系统当程序出错或某一外部条件始终不能满足时,就可能出现死循环或无休止的等待状态,即称为死锁。分布式多机系统由于系统复杂,管理困难,竞用资源的情况又十分严重,更容易发生死锁问题。在多机系统中,若

什么是“死锁”?出现死锁的条件有哪些?

  单机系统当程序出错或某一外部条件始终不能满足时,就可能出现死循环或无休止的等待状态,即称为死锁。分布式多机系统由于系统复杂,管理困难,竞用资源的情况又十分严重,更容易发生死锁问题。在多机系统中,若

知识大全 java多线程中的异常处理

  在java多线程程序中所有线程都不允许抛出未捕获的checkedexception也就是说各个线程需要自己把自己的checkedexception处理掉这一点是通过javalangRunnable

知识大全 深入解析PHP中的(伪)多线程与多进程

深入解析PHP中的(伪)多线程与多进程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本篇文章是对P

知识大全 JAVA多线程中的锁机制

JAVA多线程中的锁机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JAVA中的每个对象都可