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

  1. /*
  2. 需求:模拟三个老师同时分发80份学习笔记,每个老师相当于一个线程
  3. 思路:80份学习笔记是共享的,所以需要同步。
  4.                 定义一个类ProvideNotes,实现Runnable接口模拟老师线程
  5.                         成员变量:学习笔记
  6.                         成员方法:发笔记,需要同步,用synchronized修饰
  7.                                                 覆写run方法循环调用发笔记的方法。

  8.                 测试类中创建ProvideNotes对象,
  9.                 创建3个线程传入ProvideNotes对象
  10.                 调用start方法       
  11.                
  12. */
  13. class ProvideNotes implements Runnable
  14. {
  15.         private int notes = 80;
  16.         //private int count = 0;
  17.        
  18.         private synchronized void provideNotes(){
  19.                 if(notes>0){
  20.                         try{
  21.                                 Thread.sleep(2);
  22.                         }catch(Exception e){
  23.                                 e.printStackTrace();
  24.                         }
  25.                         System.out.println(Thread.currentThread().getName() + "发送第"
  26.                                         + (80- --notes) + "份笔记,还剩下" + notes + "本。" );
  27.                         }
  28.                
  29.         }

  30.         public void run(){
  31.                 while(true){
  32.                         provideNotes();
  33.                 }
  34.         }
  35. }
复制代码

0 个回复

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