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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

这个代码哪里有问题,调了好久
  1. /*
  2. * 同步的两前提:如果不满足,同步失败;
  3. * 1,
  4. *
  5. * */
  6. package duoxiancheng;

  7. public class ThreadShouPiaoEx {
  8.         public static void main(String [] x)
  9.         {
  10.                 ShouPiao_xiTong s=new ShouPiao_xiTong();
  11.                 Thread t=new Thread(s);
  12.                 Thread t1=new Thread(s);
  13.                
  14.                 t.start();
  15.                 try {
  16.                         Thread.sleep(10);
  17.                 } catch (InterruptedException e) {
  18.                         // TODO 自动生成的 catch 块
  19.                         e.printStackTrace();
  20.                 }
  21.                 s.flag=false;
  22.                 t1.start();
  23.                
  24.         }
  25.        

  26. }

  27. class ShouPiao_xiTong implements Runnable {
  28.         private int piao = 100;
  29.        
  30.        
  31.         boolean flag = true;
  32.        
  33.                 public void run() {
  34.                         if(flag==true)
  35.                         {       
  36.                 while (true) {
  37.                         synchronized (this) {
  38.                                 if (piao > 0) {
  39.                                         try {
  40.                                                 Thread.sleep(10);
  41.                                         } catch (InterruptedException e) {
  42.                                                 // TODO 自动生成的 catch 块
  43.                                                 e.printStackTrace();
  44.                                         }
  45.                                         System.out.println("run--"+Thread.currentThread().getName() + "  "
  46.                                                         + piao);
  47.                                         piao--;
  48.                                 }
  49.                                
  50.                                
  51.                         }
  52.                 }

  53.         }else
  54.         {
  55.                 while(true)
  56.                 {
  57.                         run1();
  58.                 }
  59.                
  60.         }
  61.                        
  62.         }
  63.                 public synchronized  void run1()
  64.                 {
  65.                         if (piao > 0) {
  66.                                 try {
  67.                                         Thread.sleep(10);
  68.                                 } catch (InterruptedException e) {
  69.                                         // TODO 自动生成的 catch 块
  70.                                         e.printStackTrace();
  71.                                 }
  72.                                 System.out.println("run1++"+Thread.currentThread().getName() + "  "
  73.                                                 + piao);
  74.                                
  75.                         }
  76.                         piao--;
  77.                        
  78.                 }
  79.                
  80. }
  81.                
复制代码

0 个回复

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