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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

大家看看下面的代码哪里有问题,为什么用javac编译的时候出现了乱码。貌似图片只能以附件形式加进来。图片见附件。
  1. import java.util.concurrent.locks.*;
  2. class Demo{
  3.         public static void main(String[] args){
  4.                 Res r = new Res();
  5.                 new Thread(new Pro(r)).start();
  6.                 new Thread(new Pro(r)).start();
  7.                 new Thread(new Con(r)).start();
  8.                 new Thread(new Con(r)).start();
  9.         }       
  10. }

  11. class Res{
  12.         private String name;
  13.         private int count = 1;
  14.         private boolean flag = false;
  15.         final Lock lock = new ReentrantLock();
  16.         final Condition condition_pro = lock.newCondition();
  17.         final Condition condition_con = lock.newCondition();
  18.         public void set(){
  19.                 lock.lock();
  20.                 try{
  21.                         while(flag)
  22.                                 condition_pro.await();
  23.                        
  24.                         this.name = "Producer......"+ count++;
  25.                         System.out.println(this.name);
  26.                         flag = true;
  27.                         condition_con.signal();
  28.                 }
  29.                 catch(InterruptedException e){
  30.                         System.out.println(e.toString());
  31.                 }
  32.                 finally{
  33.                         lock.unlock();
  34.                 }
  35.         }
  36.         public void out(){
  37.                 lock.lock();
  38.                 try{
  39.                         while(!flag)
  40.                                 condition_con.await();
  41.                                        
  42.                         System.out.println(name);
  43.                         flag = false;
  44.                         condition_pro.signal();
  45.                 }
  46.                 catch(InterruptedException e){
  47.                         System.out.println(e.toString());
  48.                 }
  49.                 finally{
  50.                 lock.unlock();
  51.                 }
  52.         }
  53. }

  54. class Pro implements Runnable{
  55.         private Res r = null;
  56.         Pro(Res r){
  57.                 this.r = r;
  58.         }
  59.         public void run(){
  60.                 for(int x = 0;x<80; x++)
  61.                         r.set();
  62.         }
  63. }
  64. class Con implements Runnable{
  65.         private Res r = null;
  66.         Con(Res r){
  67.                 this.r = r;
  68.         }
  69.         public void run(){
  70.                 for(int x = 0;x<80; x++)
  71.                         r.out();
  72.         }
  73. }
复制代码


编译乱码.PNG (5.07 KB, 下载次数: 4)

编译乱码.PNG

0 个回复

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