死锁程序(面试题)

来源:互联网 发布:大数据与精准扶贫 编辑:程序博客网 时间:2024/06/05 19:58

死锁:就是同步中嵌套同步,两个同步都想要先运行,互不相让,致使程序无法运行。

                                                                   一个死锁程序

 class Test

{

      private boolean flag;

    Test(boolean flag)

       {

           this.flag=flag;

       }

     public void run()

       {

             if(flag)

             while(true)

             {

               synchronized(mylock.locka)

                      {

                           System.out.println("if lock" );

                             synchronized(mylock.lockb)

                                  {

                                        System.out.println("if lockb");

                                  }

                       }

             }

       }

        else

         {

                 while(true)

                       {

                                               synchorized(mylock.lockb)

                                   {

                                           System.out.println("else lockb");

                                           synchronized(mylock.locka)

                                               {

                                                          System.out.println("else locka")

                                                }

                                    }

                        }

         }

}           

     class  mylock

{

      static object locka = new object();

     static object lockb = new object();

}

    class DemolockTest

{

     public static void main (string[] args)

       {

            Thread t1 = new Thread(new Test(true));

            Thread t2 = new Thread(new Test(flase));

             t1.start();

             t2.start();

        }

}

原创粉丝点击