黑马程序员技术交流社区

标题: 多线程入门练习 [打印本页]

作者: 游呤人    时间: 2015-7-20 02:07
标题: 多线程入门练习
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();
        }
       
}




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