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


public class Test11 {

        /**
         * 有100份礼品,两人同时发送, 当剩下的礼品小于10份的时候则不再送出, 利用多线程模拟该过程并将线程的名称打印出来.
         */
       
        //将礼物的数量的变量上移成成员变量 私有静态成员变量。
        private static int num = 100;
       
        public static void main(String[] args) {
                new Thread("发放者1号") {
                        //从写run方法
                        public void run() {
                                while (true) {
                                        //这个内部类也是类,所以要用在上一级的类定义锁!
                                        synchronized (Test11.class) {
                                                if (num < 10)
                                                        break;

                                                System.out.println(this.getName() + "礼品还剩下" + num-- + "个");
                                        }
                                }
                        }
                }.start();

                new Thread("发放者2号") {
                        @Override
                        public void run() {
                                while (true) {
                                        synchronized (Test11.class) {
                                                if (num < 10)
                                                        break;

                                                System.out.println(this.getName() + "礼品还剩下" + num-- + "个");
                                        }
                                }
                        }
                }.start();

        }
}

0 个回复

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