本帖最后由 贾存双 于 2012-7-12 09:49 编辑
public class TestSync implements Runnable {
Timer timer = new Timer(); //实例化timer
public static void main(String[] args) {
Thread t1 = new Thread(test,"t1");
Thread t2 = new Thread(test,"t2");
t1.start();
t2.start();
}
public void run() { //覆写run()方法
try{ System.out.println(timer.add(Thread.currentThread().getName())); //调用timer.add()方法并打印返回结果。
}catch(Exception e){ //如果有异常,会返回到这里
e.printStackTrace() ;
}
}
}
class Timer {
int num = 0; //这里不能定义为私有的 静态的
public String add(String name)throws Exception { //之前你这里定义的是无返回值类型的方法,因为没有异常,所以不会返回显示任何信息。
try {
Thread.sleep(2); //不管这里休眠设多长时间它只休眠一次,因为你这方法设计的不合理;
} catch (Exception e) {
throw e;
}
num++; //还有应该把 num ++ 放在休眠线程的下面,不然你上面的休眠没用,因为所有线程都等休眠结束呢,而num在上面的话只会在下面打印出最大那个数。
return name + ",你是第" + num + "个使用timer的人" ;
}
}
//我不明白你的代码写这么乱有什么意义没??? |