package hall; import java.util.*; import java.math.BigInteger; /** Creates a Vector of large prime numbers, usually in * a low-priority background thread. Provides a few small * thread-safe access methods. *
* Part of tutorial on servlets and JSP that appears at
* http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/
* 1999 Marty Hall; may be freely used or adapted.
*/
public class PrimeList implements Runnable {
private Vector primes;
private int numPrimes, numDigits;
// Finds numPrimes prime numbers, each of which are
// numDigits long or longer.
public PrimeList(int numPrimes, int numDigits,
boolean runInBackground) {
// Using Vector instead of ArrayList
// to support JDK 1.1 servlet engines
primes = new Vector(numPrimes);
this.numPrimes = numPrimes;
this.numDigits = numDigits;
if (runInBackground) {
Thread t = new Thread(this);
// Use low priority so you don't slow down server.
t.setPriority(Thread.MIN_PRIORITY);
t.start();
} else {
run();
}
}
public void run() {
BigInteger start = Primes.random(numDigits);
for(int i=0; i