public class PrimeGenerator implements Runnable{
private final List<Integer> primes = new ArrayList<>();
private volatile boolean cancelled;
public void run(){
BigInteger p = BigInteger.ONE;
while(!cancelled){
p = p.nextProbablePrime();
synchronized(this){
primes.add(p);
}
}
}
public void cancel(){
cancelled = true;}
public synchronized List<BigInteger> get(){
return new ArrayList<BigInteger>(primes);
}
}
List<BigInteger> aSecondOfPrimes() throws InterruptedException{
PrimeGenerator generator = now PrimeGenerator();
new Thread(generator).start();
try{
SECONDS.sleep(1);
}finally{
generator.cancel();
}
return generator.get();
}
线程的协作取消方式JAVA
猜你喜欢
转载自blog.csdn.net/weixin_37632716/article/details/118311845
今日推荐
周排行