/* ThreadedPrimeNumberTools.java */ public class ThreadedPrimeNumberTools extends PrimeNumberTools implements Runnable { private int arg; private int func; public void printPrimeFactors(int num) { execAsynchron(1,num); } public void printPrime(int cnt) { execAsynchron(2,cnt); } public void run() { if (func == 1) { super.printPrimeFactors(arg); } else if (func == 2) { int result = super.getPrime(arg); System.out.println("prime number #"+arg+" is: "+result); } } private void execAsynchron(int func, int arg) { Thread t = new Thread(this); this.func = func; this.arg = arg; t.start(); } }