您可以使用
AtomicBoolean并将它传递给两个线程,原子类型是可访问的,抛出多线程也是线程安全的。
首先声明您标记
isDone为
AtomicBoolean
private AtomicBoolean isDone;
然后声明一个
AtomicBoolean对象并将其传递给两个线程
PipedOutputStream pos= new PipedOutputStream();PipedInputStream pis = new PipedInputStream(pos);AtomicBoolean isDone = new AtomicBoolean();NumGen ng = new NumGen(pos, isDone);RunningAvg ra = new RunningAvg(pis, isDone);ng.start();ra.start();
最后,一旦您想停止生成数字,就要求
Thread-2设置
isDonefalse。



