A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 追逐 高级黑马   /  2014-3-19 09:42  /  959 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
把同步加在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--);
                                }
                        }
                }
        }
       
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马