}
}
class Consumer extends Thread...{ //定义消费者类
Buffer buf;
Consumer(Buffer buf)...{
this.buf=buf;
}
public void run()...{
while(true)...{
System.out.println("Consume "+buf.get());
}
}
}
}
}
class Consumer extends Thread...{ //定义消费者类
Buffer buf;
Consumer(Buffer buf)...{
this.buf=buf;
}
public void run()...{
while(true)...{
System.out.println("Consume "+buf.get());
}
}
}编译运行:

如果在方法put和get不用synchronized修饰为同步方法,则运行出错:

因为它们必须对同一个this对象进行操作。
使用wait方法时会抛出异常,必须进行异常捕捉处理。
■ 线程的状态
线程的终止可以通过设置一个flag变量,并结合interrupt()方法。
我们用设置一个boolean型变量bStop:

class TestThread...