黑马程序员技术交流社区

标题: 关于同步的问题 [打印本页]

作者: 追逐    时间: 2014-3-19 09:42
标题: 关于同步的问题
/*
把同步加在while循环内和加在循环外有什么区别呢?
为什么一个会运行多个线程
一个却在打印的时候只运行一个线程呢。求解
*/


class Test1 implements Runnable {
       
        Object obj = new Object();
        private int piao = 100;
        public void run() {
                while(true) {
                        synchronized(obj) {
                                if(piao > 0) {
                                        try {Thread.sleep(10);} catch(InterruptedException e) {}
                                        System.out.println("show run..." + piao--);
                                }
                        }
                }
        }
       
}

class Test2 implements Runnable {

        Object obj = new Object();
        private int piao = 100;
        public void run() {
                synchronized(obj) {
                        while(true) {
                                if(piao > 0) {
                                        try {Thread.sleep(10);} catch(InterruptedException e) {}
                                        System.out.println("show run..." + piao--);
                                }
                        }
                }
        }
       
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2