两道企业面试题(1)-死锁的应用

来源:互联网 发布:php utf8 编码 编辑:程序博客网 时间:2024/06/08 09:44
/* *  死锁 */public class DeadLock02Thread implements Runnable{int b=100;//m1被锁定,但不能改变同样被锁住的m2public synchronized void m1() throws Exception{b=1000;Thread.sleep(5000);System.out.println("b="+b);}//m1被锁定,但线程可以访问未被锁定的m2//把m2页锁定//两个方法改同一个值,为了避免相互影响,必须加同步public synchronized void m2() throws Exception{Thread.sleep(2500);b=2000;//System.out.println(b);}public void run() {try{m1();}catch  (Exception e){e.printStackTrace();}}public static void main(String[] args) throws Exception{DeadLock02Thread tt=new DeadLock02Thread();Thread T=new Thread(tt);T.start();tt.m2();//b先被m2拿到,改成2000,再被m1拿到,改成1000,然后打印出来System.out.println(tt.b);}}

运行结果:

1000b=1000


0 0
原创粉丝点击