文档介绍:1、利用Thread实现,要求多线程求解某范围素数每个线程负责1000范围:线程1找1-1000; 线程2找1001-2000;线程3找2001-3000。编程程序将每个线程找到的素数及时打印。
class PrimeGenerator (long i=2; i<number; i++)(
if ((number % i)==0) (
return false;
}
}
return true;
}
}
public class PrimeTest {
public static void main(String[] args) {
〃实例化3个线程,分别调用start方法来启动线程
PrimeGenerator tl=new PrimeGenerator(l,1000);
();
PrimeGenerator t2=new PrimeGenerator( 1001,2000);
();
PrimeGenerator t3=new PrimeGenerator(2001,3000);
();
}
}
2、利用Runnable实现,要求多线程求解某范围素数每个线程负责1000范围:线程1找 1-1000:线程2找1001-2000;线程3找2001-3000»编程程序将每个线程找到的素数及时打 印。
class PrimeGenerator implements Runnable(
private long beginNumber;
private long endNumber;
/**
*构造方法
***@param beginNumber
***@param endNumber
*/
public PrimeGenerator(long beginNumberJong endNumber) { = beginNumber;
= endNumber;
)
/**
*实现接口的run方法
*/
public void run() (
// This bucle never ends... until is interrupted
while (true) (
〃如果是素数则输出
if (isPrime(beginNumber)) (
("Number %d is Prime\n",beginNumber);
}
〃如果开始值大于结束值,结束
if (beginNumber>endNumber) (
return;
}
〃修改开始值
beginNumber++;
}
}
/**
*判断一个数是否是素数,如果是则返回true,不是返回false
***@param number
***@return
*/
private boolean isPrime(long number) (
〃如果一个数小于等于2,则是素数
if (number <=2) (
return true;
}
〃如果一个数大于2,则判断该数是否能被2和number-1之间的数整除, 〃如果能整除就不是素数
for (long i=2; i<nu