首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

聊女朋友的方式记住java的Thread死锁

2012-12-28 
谈女朋友的方式记住java的Thread死锁public class MakeGirlfriend implements Runnable{private int flag

谈女朋友的方式记住java的Thread死锁

public class MakeGirlfriend implements Runnable{    private int flag = 1;              //flag = 1,代表:1号帅哥。flag = 2,代表:2好帅哥    static Object o1 = new Object(),o2 = new Object();                                       //这里的意思是o1代表:1号美女,o2代表:2号美女    @Override    public void run() {                //导演准备的大房间,进行交谈交际测试的!     System.out.println("flag="+flag); //看2位帅哥角色有没有 进入房间这个房间        if(flag == 1){                 //如果是1号帅哥就进来            synchronized(o1){          //如果1号帅哥先锁定1号美女的话,然后开始交往!                try {                    Thread.sleep(500);//那么就必须等半分钟才可以去锁定2号美女                } catch (InterruptedException e) {                    e.printStackTrace();                }                synchronized(o2){     //如果1号帅哥把1号美女锁定后半分钟后,再来锁定2号美女那么                    System.out.println("嘿嘿,1号美女跟2号美女都归我了,2个女朋友真爽啊!");                }            }        }               if(flag == 2){                   //如果是2号帅哥就进来            synchronized(o2){          //如果2号帅哥先锁定2号美女的话,然后开始交往!                try {                    Thread.sleep(500); //那么就必须等半分钟才可以去锁定1号美女                } catch (InterruptedException e) {                    e.printStackTrace();                }                synchronized(o1){     //如果2号帅哥把2号美女锁定后半分钟后,再来锁定1号美女那么                    System.out.println("嘿嘿,1号美女跟2号美女都归我了,2个女朋友真爽啊!");                }            }        }    }       public static void main(String[] args) {//【演播大厅】导演说:我们需要dk01,dk02 这样的2个角色        MakeGirlfriend dk01 = new MakeGirlfriend();        //所以设计出了dk01角色        MakeGirlfriend dk02 = new MakeGirlfriend();        //所以设计出了dk02角色                                            //导演又说:需要2个演员来演这两个角色                                            //员工说:找到演员了,他们分别是(男1号)跟(男2号)                                            //导演说:让1号演dk01角色,让2号演dk02角色        dk01.flag = 1;        dk02.flag = 2;        new Thread(dk01).start();            //角色dk01准备开工        new Thread(dk02).start();            //角色dk02准备开工    }}//到底是1号帅哥得到了2个美女还是2号帅哥得到了2个美女呢?//哈哈,发现自己好坏!//哈哈
?

热点排行