摘自:http://caterpillar.onlyfun.net/Gossip/JavaGossip-V2/CallableFuture.htm
package onlyfun.caterpillar;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
public class PrimeCallable implements Callable<int[]> {
private int max;
public PrimeCallable(int max) {
this.max = max;
}
public int[] call() throws Exception {
int[] prime = new int[max + 1];
List<Integer> list = new ArrayList<Integer>();
for (int i = 2; i <= max; i++)
prime[i] = 1;
for (int i = 2; i * i <= max; i++) {
if (prime[i] == 1) {
for (int j = 2 * i; j <= max; j++) {
if (j % i == 0)
prime[j] = 0;
}
}
}
for (int i = 2; i < max; i++) {
if (prime[i] == 1) {
list.add(i);
}
}
int[] p = new int[list.size()];
for (int i = 0; i < p.length; i++) {
p[i] = list.get(i).intValue();
}
return p;
}
}
package onlyfun.caterpillar;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class FutureDemo {
public static void main(String[] args) {
Callable<int[]> primeCallable = new PrimeCallable(1000);
FutureTask<int[]> primeTask = new FutureTask<int[]>(primeCallable);
Thread t = new Thread(primeTask);
t.start();
try {
Thread.sleep(5000);
if (primeTask.isDone()) {
int[] primes = primeTask.get();
for (int prime : primes) {
System.out.print(prime + " ");
}
System.out.println();
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
JDK 1.6引入了注解,这是一种元数据,可以为代码添加信息,用于编译时或运行时的处理。例如,`@Override`确保方法覆盖父类方法,`@Deprecated`标记已过时的方法。 ### 5. 枚举类型(enum) 1.6版本引入了枚举类型...
3. **改进的并发性**:JDK1.6增强了多线程处理能力,例如`java.util.concurrent`包中的新工具类,如ExecutorService和Future,为并行编程提供了更强大的支持。 4. **XML处理**:更新了SAX和DOM解析器,支持XML ...
Java的并发编程模型在JDK1.6中得到了强化,包括Thread类和Runnable接口,以及ExecutorService、ThreadPoolExecutor、Future等高级并发工具。这些工具使得开发者可以更高效、安全地编写多线程程序,处理并发问题。 ...
JDK1.6 API文档是Java开发者的重要参考资料,它详尽地列出了Java Development Kit 1.6版本中的所有类、接口、方法和异常,为开发者提供了全面的编程指南。这个文档是官方发布的,因此其权威性和准确性得到了保证,...
9. **脚本语言支持**:JDK1.6通过JSR 223添加了对多种脚本语言的支持,如JavaScript,允许Java应用直接调用脚本代码。 10. **国际化和本地化增强**:提供了更多的语言支持和日期/时间格式化改进,使软件更容易适应...
在Linux系统中安装JDK 1.6,首先需要下载适合您系统架构(32位或64位)的安装包。通常,这可以通过访问Oracle官网的历史版本页面来获取。下载完成后,可以使用tar命令解压文件,例如: ```bash tar -zxvf jdk-1_6_0...
4. **注解(Annotations)**: 注解是一种元数据,可以在源代码中添加元信息,用于编译器或运行时系统进行处理。JDK 1.6扩展了注解的使用场景,如JSR 303(Bean Validation)和JSR 305(Nullable/NonNull)。 **二、...
本篇将深入探讨JDK 1.6中文版和1.8英文版中的关键知识点。 1. **Java虚拟机(JVM)** - JVM是Java程序执行的基础,它负责解释并执行字节码,实现跨平台的"一次编写,到处运行"特性。 - JDK 1.6引入了增强的垃圾...
此外,JDK1.6还引入了增强的注解(`Annotation`)功能,允许在代码中添加元数据,以供编译器、IDE或其他工具进行静态分析和处理。例如,`@Override`用于标记重写父类方法,`@Deprecated`表示某个元素已过时。 总的来...
标题"JDK1.6 中文API(java)"指的是Java Development Kit(JDK)1.6版本的官方中文版应用程序接口(API)文档。API文档是开发者在编程时的重要参考资料,它详细列出了Java 1.6版本中所有可用的类、接口、方法和构造...
这个压缩包包含了一整套Java 1.6版本的API接口、类库以及方法的描述,便于在开发过程中查阅和理解。 Java 1.6,也被称为Java SE 6(Java Standard Edition 6),是Oracle公司发布的一个重要Java版本。这个版本引入...
2. **路径配置**:安装完成后,需要将JDK的bin目录添加到系统的PATH环境变量中,以便在任何地方都能调用Java命令。 3. **验证安装**:可以通过在命令行输入`java -version`来检查JDK是否安装成功,并查看具体的版本...
《JDK 1.6 API中文官方文档》是Java开发者不可或缺的重要参考资料,它详细记录了JDK 1.6版本中的各种类库、接口、方法和异常等编程元素,为Java开发提供了详尽的API(应用程序接口)指南。这份文档的重要性在于,它...
本篇文章将详细解析Java SDK 1.6版本中的中文API,旨在帮助开发者更深入地理解和使用Java编程语言。 一、Java API概述 Java API是一组预先定义好的类和接口,它为开发者提供了丰富的功能,包括数据结构、网络通信...
《JDK 1.6 API中文完全版2016》是Java开发人员的重要参考资料,它详尽地列出了Java Development Kit(JDK)1.6版本中的所有公共类、接口、枚举和注解,提供了全面的中文解释,使得开发者能够更方便地理解和使用Java...
2. **并发编程增强**:添加了`java.util.concurrent`包,包含如`ExecutorService`、`Future`和`Callable`等高级并发工具类,提高了多线程编程的效率和可维护性。 3. **动态代理**:JDK 1.6支持接口的动态代理,允许...
4. **默认方法**:在接口中添加了可实现的方法,允许接口提供默认实现,降低了向后兼容性的风险。 5. **日期和时间API**:`java.time`包替换了旧的`java.util.Date`和`java.util.Calendar`,提供了更易用、更强大的...
6. **并发工具类(Concurrent Utilities)**:Java并发包`java.util.concurrent`在1.6版本中得到了扩展,添加了更多线程安全的数据结构和同步工具,如`ExecutorService`,`Future`,`CountDownLatch`等,简化了多线程...
《JDK API 1.6 中文版》是Java开发者必备的参考资料,它详细记录了Java Development Kit(JDK)1.6版本中的各种类库、接口和方法,为编程者提供了全面的API文档。CHM文件是一种由Microsoft开发的帮助文件格式,用于...
1. **并发工具类**:JDK 1.6引入了`java.util.concurrent`包,包含如`ExecutorService`、`Future`和`BlockingQueue`等高效并发处理工具。 2. **改进的垃圾回收**:引入了Parallel GC和CMS(Concurrent Mark Sweep)...