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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 游呤人 中级黑马   /  2015-7-20 02:07  /  270 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package om;
/*
*
* 六个老师,同发10000份笔记
*
* 分析:
*                 由于有10000份笔记所以,即使将他们份给六个老师那循环的时间也很长.所以要使用多线程,
* 10000份笔记是共享的数据不能容易产生线程安全.所以应该为这一10000份笔记进行上同步锁
*                 过程:
*                         定义一个Runnable的实现类,设置一个note的字段为,在定义一个Object类型让作为同步所
*                 实现run方法
*                         在定义一测试类
* */
class SendNote implements Runnable {
        private int note = 10000;
        Object lo = new Object();
        public void run() {
                while (true) {
                        synchronized (lo) {
                                try {
                                        //this.wait();
                                        Thread.sleep(10);
                                } catch (InterruptedException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                //        this.notify();
                                if (note > 0)
                                        System.out.println(Thread.currentThread().getName()
                                                        + "老师在发第" + note-- + "本笔记");
                                else
                                        break;
                        }
                }
        }
}

public class NoteTh {
        public static void main(String[] args) {
                        Runnable run=new SendNote();
                        new Thread(run,"赵").start();
                        new Thread(run,"钱").start();
                        new Thread(run,"孙").start();
                        new Thread(run,"李").start();
                        new Thread(run,"周").start();
                        new Thread(run,"吴").start();
                        //new Thread(new SendNote()).start();
        }
       
}

0 个回复

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