RT,写了一个lock来控制线程的示例,认真检查了代码没有问题,但是一编译就变这样,还会嘟嘟的响几声....兄弟们,谁能给小弟解释下怎么回事?

解决方案 »

  1.   

    第一,你在javac
    第二,你的locale设置有问题,产生了乱码,导致你无法看懂编译错误
    第三,编译错误:Interuptedexception属于检测异常,在编译(编写代码的时候)就需要捕获处理的,但你却没有处理这个异常。先将你的乱码问题解决,然后多看看异常方面的基础知识,,,,,
      

  2.   


    首先定义一个资源,其中包括了生产和消费两种方法。
    定义一个生产者类Pro来实现Runnable接口
    定义一个消费者类Con来实现Runnable接口
    最后创建2个线程来生产,2个线程来消费,想达到生产一个消费一个的效果。但是编译时候就会出现上边的乱码。小弟新人自学,难免写的有些乱。
      

  3.   

    嗯,谢谢前辈指点,我先了解下locale先
      

  4.   

    你把代码粘贴一下吧,别用图片,要不然还得手敲,像这样粘贴代码
    int a;
      

  5.   

    你把代码粘贴一下吧,别用图片,要不然还得手敲,像这样粘贴代码
    int a;嗯,好的,估计要晚上了,白天上班还弄不了
      

  6.   

    你把代码粘贴一下吧,别用图片,要不然还得手敲,像这样粘贴代码
    int a;class Resourse
    {
    private String name;
    private int count = 1;
    private boolean flag=false;
    public synchronized void setname(String name)
    {
    if (flag)
    try{this.wait();}catch(Exception e){};
    this.name=name+"----"+count++;
    System.out.println(Thread.currentThread().getName()+"生产-"+name);
    flag = true;
    this.notify();
    }
    public synchronized void out()
    {
    if (!flag)
    try{this.wait();}catch(Exception e){};
    System.out.println(Thread.currentThread().getName()+"消费------"+name);
    flag = false;
    this.notify();
    }
    }class Pro implements Runnable
    {
    private Resourse r;
    Pro(Resourse r)
    {
    this.r=r;
    }
    public void run()
    {
    r.setname("商品");
    }
    }class Con implements Runnable
    {
    private Resourse r;
    Con(Resourse r)
    {
    this.r=r;
    }
    public void run()
    {
    r.out();
    }
    }class procondemo
    {
    public static void main (String[] args)
    {
    Resourse r = new Resourse();
    Pro p = new Pro(r);
    Con c = new Con(r);
    Thread t1 = new Thread(p);
    Thread t2 = new Thread(c);
    t1.start();
    t2.start();
    }
    }这是代码,感谢
      

  7.   

    你把这些类分别写成一个文件试试,我在eclipse中jdk1.7环境测的,没发现什么问题