JAVA多线程 <四>死锁

来源:互联网 发布:喜剧之王知乎 编辑:程序博客网 时间:2024/06/10 14:46

死锁发生情况一:嵌套互斥锁

package thread_Demo;class Task implements Runnable{    private boolean flag;    Task(boolean flag)    {        this.flag = flag;    }    public void run()    {        if(flag)        {                synchronized (MyLock.Locka)                 {                    System.out.println("locka.........if.");                                             synchronized (MyLock.Lockb)                         {                                                 System.out.println("lockb..........if");                        }                }         }            else        {            synchronized (MyLock.Lockb)             {                    System.out.println("locka.........else.");                                    synchronized (MyLock.Locka)                     {                                        System.out.println("lockb..........else");                    }            }        } }}class MyLock{    public static final Object Locka = new Object();    public static final Object Lockb = new Object();    }public class DeadLock {    /**     * 本程序演示多线程死锁     */        public static void  main(String[] args)         {                Task t1 = new Task(true);                Task t2 = new Task(false);                new Thread(t1).start();                 new Thread(t2).start();                      }}


0 0
原创粉丝点击