不多说了,看代码
通用类
package java7.concurrency.math;
/**
* This class generates prime numbers until is interrupted
*/
public class PrimeGenerator extends Thread{
private long numberRange;
public PrimeGenerator(long numberRange) {
this.numberRange = numberRange;
}
/**
* Central method of the class
*/
@Override
public void run() {
long number=2L;
// This bucle never ends... until is interrupted
while (true) {
if (isPrime(number)) {
System.out.printf("Number %d is Prime\n",number);
}
// When is interrupted, write a message and ends
if (isInterrupted()) {
System.out.printf("The Prime Generator has been Interrupted\n");
return;
}
if (number>=numberRange) {
return;
}
number++;
}
}
/**
* Method that calculate if a number is prime or not
* @param number : The number
* @return A boolean value. True if the number is prime, false if not.
*/
private boolean isPrime(long number) {
if (number <=2) {
return true;
}
for (long i=2; i<number; i++){
if ((number % i)==0) {
return false;
}
}
return true;
}
}
测试类
package java7.concurrency.basic;
import java.util.concurrent.TimeUnit;
import java7.concurrency.math.PrimeGenerator;
public class PrimeTest {
public static void main(String[] args) {
// Launch the prime numbers generator
Thread task=new PrimeGenerator(200);
task.start();
// Wait 1 seconds
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
// Interrupt the prime number generator
task.interrupt();
}
}
分享到:
相关推荐
Java 求指定范围内素数的个数,接受用户从键盘输入所求范围,计算出该范围内素数的个数。
虽然这个方法通常用于找出一定范围内的所有素数,但在这里我们只需要逐个检查自然数并判断是否为素数。 以下是简单的Java代码示例,用于打印小于特定数值的所有素数: ```java public class PrimeNumber { public...
Java作为一种广泛使用的编程语言,非常适合用来编写计算和处理素数的程序。这个压缩包文件“素数”可能包含了一个或多个Java源代码文件,用于解决Java第二版教材中的素数相关习题。以下将详细介绍Java编程中如何实现...
### Java求素数的经典算法 #### 一、引言 素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。求解素数是计算机科学中的一个经典问题,特别是在密码学等领域有着重要的应用价值。Java作为一门流行...
这个项目“素数计算”显然关注的是编写程序来识别和列出指定范围内的素数。 在描述中提到的“按条件计算”,可能指的是用户可以根据自己的需求设置特定的数值范围,比如从1到100,或者从1000到2000,然后程序会在这...
线程池是并发编程中的重要概念,特别是在Java和C++等多线程环境中,它能够有效地管理和调度线程资源,提高系统的效率。本示例中,我们关注的是一个基于`uThreadPool`实现的线程池,它用于执行查找0到1亿之间所有质数...
标题中的问题涉及到的是计算理论和计算机编程中的一个经典议题——寻找一定范围内素数的数量。素数是大于1且除了1和它自身以外没有其他正因数的自然数,例如2、3、5、7等。在给定的范围内,如一亿(100,000,000),...
- **多线程**:在大型数据集上,可以考虑使用多线程并行处理,加快计算速度。 总结,打印100以内的质数是学习Java基础和算法的好练习。通过这个过程,你可以深入了解循环、条件语句、数学运算以及算法设计等核心...
这是一种古老而有效的算法,用于找出给定范围内所有素数。步骤如下: 1. 创建一个布尔数组,长度为n+1,所有元素初始化为true,表示0到n的所有数都是素数。 2. 从2开始遍历数组,如果当前数字为true,表示它是素数...
ThreadImRunnable.java 继承Runnable接口实现多线程 mulThread.java 创建多个线程对象的类 demoJoin.java 演示使用join()以确保主线程最后结束 clicker.java 一个计数用的线程类 demoPri.java 调用上面这个类...
在Java中,我们可以通过编写程序来找出指定范围内所有的素数。本篇文章将详细讲解如何利用Java实现这一功能,特别是通过“素数筛”算法。 一、素数筛简介 素数筛是一种寻找素数的高效算法,最著名的莫过于...
统计素数是指找出一定范围内的所有素数。在本题中,使用穷举法来统计 1 至 1 万共有多少个数是素数。 9. 读程序、写结果 读程序是指读取程序的输出结果,写结果是指将输出结果写入到文件或屏幕上。在本题中,使用 ...
这通常通过埃拉托斯特尼筛法(Sieve of Eratosthenes)实现,这是一种高效找出一定范围内所有素数的方法。你可以创建一个boolean数组,初始化所有数为true,然后从2开始,将所有2的倍数标记为false,接着找到下一个...
### JAVA语言程序设计课后习题精解 #### 一、字符统计程序 ...以上对JAVA语言程序设计课后习题的总结,涵盖了从基础的数据类型操作到高级的面向对象编程和多线程技术,为学习JAVA语言提供了全面的实践指导。
寻找特定范围内的素数是许多算法中的基础任务之一。 #### Java实现素数判断 在提供的代码中,作者通过两层循环实现了对小于100000的所有整数的素性判断。代码的关键逻辑如下: 1. **初始化**:首先定义了一个名为...
- **素数的高级算法**:如埃拉托斯特尼筛法(Sieve of Eratosthenes),可以在较大的范围内更高效地找出所有素数。 - **并行计算**:对于大数据集,可以考虑使用多线程或多进程技术来加速计算过程。 - **性能测试**...
3. **求质数**:这是质数判断的一个变体,可能是要求生成一定范围内的所有质数。可以使用Sieve of Eratosthenes算法,它通过消除已知质数的倍数,有效地找出所有质数。 4. **递归求阶乘**:阶乘是一个数的所有小于...
4. **例02.12 输出指定范围内的素数**:素数检测是算法基础,通常使用循环和条件判断实现。学习者需要掌握循环结构,以及如何判断一个数是否为素数。 5. **例02.09 九九乘法表**:这是经典的控制流应用,涉及两层...
此外,实验中涉及到的输入输出流、多线程和Socket通信等内容也是Java开发中的重要知识点,在后续的学习过程中将会有更深入的应用。希望学弟学妹们能够通过此次实验,打下坚实的Java编程基础,为今后的学习和发展奠定...
Java编程语言在面试中常常会涉及各种问题,包括算法、数据结构、面向对象设计、异常处理、多线程等。上述文档中包含了五个Java编程题目,涵盖了递归、循环、数学逻辑、数组操作以及条件运算等多个知识点。 1. **...