java吧 关注:1,250,213贴子:12,732,167
  • 24回复贴,共1

帮我看下代码,哪里错误,谢谢啊

只看楼主收藏回复

class Ticket implements Runnable //extends Thread
{//1
private int num=1000;
Object obj=new Object();
boolean flag=true;
public synchronized void sale()
{//2
if(num>0)
{//3
//try{Thread.sleep(10);}
//catch (InterruptedException e){}
System.out.println(Thread.currentThread().getName()+"\t"+"show票号:"+num--);
}//3
}//2
public void run()
{//4
if(flag)
while(true)
{//5
synchronized(obj)
{//6
if(num>0)
{//7
try{Thread.sleep(10);}
catch (InterruptedException e){}
System.out.println(Thread.currentThread().getName()+"\t"+"obj票号:"+num--);
{//7
}//6
}//5
else
while(true)
sale();
}//4
}//1
class synchornizedFunctionLockDemo
{//8
public static void main(String[] args)
{//9
Ticket t=new Ticket();
Thread t1=new Thread(t);
Thread t2=new Thread(t);
t1.start();
t2.start();
}//9
}//8


1楼2016-01-31 23:28回复
    为何又要实现runnable 又要继承thread


    IP属地:广东来自Android客户端2楼2016-02-01 00:14
    收起回复
      没有贴错误信息,差评。


      IP属地:四川4楼2016-02-01 00:43
      收起回复
        比较好奇你怎么复制的,可以选择性少几个括号


        IP属地:广东5楼2016-02-01 17:55
        收起回复
          感觉是你复制问题 还是代码就是这样,乱七八糟的


          IP属地:广东6楼2016-02-01 17:58
          收起回复
            如果要用到那个flag,最好放进同步代码块里面,还有用了同步代码块,还要定义一个同步方法有什么特殊意义么


            IP属地:广东7楼2016-02-01 17:59
            收起回复