`
Aga
  • 浏览: 218640 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

jdk1.6中添加的future

    博客分类:
  • J2SE
阅读更多
摘自: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 帮助手册

    JDK 1.6引入了注解,这是一种元数据,可以为代码添加信息,用于编译时或运行时的处理。例如,`@Override`确保方法覆盖父类方法,`@Deprecated`标记已过时的方法。 ### 5. 枚举类型(enum) 1.6版本引入了枚举类型...

    JDK1.6 API帮助文档.zip

    3. **改进的并发性**:JDK1.6增强了多线程处理能力,例如`java.util.concurrent`包中的新工具类,如ExecutorService和Future,为并行编程提供了更强大的支持。 4. **XML处理**:更新了SAX和DOM解析器,支持XML ...

    Java_JDK1.6api手册中文版

    Java的并发编程模型在JDK1.6中得到了强化,包括Thread类和Runnable接口,以及ExecutorService、ThreadPoolExecutor、Future等高级并发工具。这些工具使得开发者可以更高效、安全地编写多线程程序,处理并发问题。 ...

    JDK1.6——API文档完整版

    JDK1.6 API文档是Java开发者的重要参考资料,它详尽地列出了Java Development Kit 1.6版本中的所有类、接口、方法和异常,为开发者提供了全面的编程指南。这个文档是官方发布的,因此其权威性和准确性得到了保证,...

    Java JDK1.6

    9. **脚本语言支持**:JDK1.6通过JSR 223添加了对多种脚本语言的支持,如JavaScript,允许Java应用直接调用脚本代码。 10. **国际化和本地化增强**:提供了更多的语言支持和日期/时间格式化改进,使软件更容易适应...

    linux下的jdk1.6

    在Linux系统中安装JDK 1.6,首先需要下载适合您系统架构(32位或64位)的安装包。通常,这可以通过访问Oracle官网的历史版本页面来获取。下载完成后,可以使用tar命令解压文件,例如: ```bash tar -zxvf jdk-1_6_0...

    jdk1.6中文帮助文档

    4. **注解(Annotations)**: 注解是一种元数据,可以在源代码中添加元信息,用于编译器或运行时系统进行处理。JDK 1.6扩展了注解的使用场景,如JSR 303(Bean Validation)和JSR 305(Nullable/NonNull)。 **二、...

    Java SE API JDK 1.6中文版以及1.8英文版

    本篇将深入探讨JDK 1.6中文版和1.8英文版中的关键知识点。 1. **Java虚拟机(JVM)** - JVM是Java程序执行的基础,它负责解释并执行字节码,实现跨平台的"一次编写,到处运行"特性。 - JDK 1.6引入了增强的垃圾...

    JDK1.6API帮助文档

    此外,JDK1.6还引入了增强的注解(`Annotation`)功能,允许在代码中添加元数据,以供编译器、IDE或其他工具进行静态分析和处理。例如,`@Override`用于标记重写父类方法,`@Deprecated`表示某个元素已过时。 总的来...

    JDK1.6 中文API(java)

    标题"JDK1.6 中文API(java)"指的是Java Development Kit(JDK)1.6版本的官方中文版应用程序接口(API)文档。API文档是开发者在编程时的重要参考资料,它详细列出了Java 1.6版本中所有可用的类、接口、方法和构造...

    jdk 1.6 API HTML Chinese

    这个压缩包包含了一整套Java 1.6版本的API接口、类库以及方法的描述,便于在开发过程中查阅和理解。 Java 1.6,也被称为Java SE 6(Java Standard Edition 6),是Oracle公司发布的一个重要Java版本。这个版本引入...

    jdk1.6-win64

    2. **路径配置**:安装完成后,需要将JDK的bin目录添加到系统的PATH环境变量中,以便在任何地方都能调用Java命令。 3. **验证安装**:可以通过在命令行输入`java -version`来检查JDK是否安装成功,并查看具体的版本...

    JDK 1.6 API.chm

    《JDK 1.6 API中文官方文档》是Java开发者不可或缺的重要参考资料,它详细记录了JDK 1.6版本中的各种类库、接口、方法和异常等编程元素,为Java开发提供了详尽的API(应用程序接口)指南。这份文档的重要性在于,它...

    jdk1.6 中文API

    本篇文章将详细解析Java SDK 1.6版本中的中文API,旨在帮助开发者更深入地理解和使用Java编程语言。 一、Java API概述 Java API是一组预先定义好的类和接口,它为开发者提供了丰富的功能,包括数据结构、网络通信...

    JDK 1.6 API中文完全版2016.chm

    《JDK 1.6 API中文完全版2016》是Java开发人员的重要参考资料,它详尽地列出了Java Development Kit(JDK)1.6版本中的所有公共类、接口、枚举和注解,提供了全面的中文解释,使得开发者能够更方便地理解和使用Java...

    JDK 1.6 API

    2. **并发编程增强**:添加了`java.util.concurrent`包,包含如`ExecutorService`、`Future`和`Callable`等高级并发工具类,提高了多线程编程的效率和可维护性。 3. **动态代理**:JDK 1.6支持接口的动态代理,允许...

    jdk版本资源,jdk1.4,jdk1.6,jdk1.8

    4. **默认方法**:在接口中添加了可实现的方法,允许接口提供默认实现,降低了向后兼容性的风险。 5. **日期和时间API**:`java.time`包替换了旧的`java.util.Date`和`java.util.Calendar`,提供了更易用、更强大的...

    jkd1.632wei_v3.5.8.18_xfdown.com.zip

    6. **并发工具类(Concurrent Utilities)**:Java并发包`java.util.concurrent`在1.6版本中得到了扩展,添加了更多线程安全的数据结构和同步工具,如`ExecutorService`,`Future`,`CountDownLatch`等,简化了多线程...

    JDK_API_1_6_zh_CN.zip

    《JDK API 1.6 中文版》是Java开发者必备的参考资料,它详细记录了Java Development Kit(JDK)1.6版本中的各种类库、接口和方法,为编程者提供了全面的API文档。CHM文件是一种由Microsoft开发的帮助文件格式,用于...

    jdk1.8,1.6谷歌api

    1. **并发工具类**:JDK 1.6引入了`java.util.concurrent`包,包含如`ExecutorService`、`Future`和`BlockingQueue`等高效并发处理工具。 2. **改进的垃圾回收**:引入了Parallel GC和CMS(Concurrent Mark Sweep)...

Global site tag (gtag.js) - Google Analytics