Zix*_*lll 14 java parallel-processing java-8
我试图使用新的并行功能JDK8,但不幸的是,我无法让它工作.NetBeans 7.1表示不存在"并行"方法.
这种方法需要特殊导入吗?有没有人有示例代码演示Java 8并行性?
我已经玩JDK8 Lambda Developer Preview几周了.以下是我为简化代码编译和测试所做的工作:
以下指南介绍了如何配置Apache Ant和JEdit以使用JDK 8 Lambda Expressions轻松编译源代码以及JDK 8 Lambda Developer Preview中的新API功能.
这就是我今天所做的,主要是因为还没有IDE支持这些JDK 8功能.
下载以下内容:
然后创建以下目录结构:
Sanbox
|-----jdk8
|-----ant
|-----projects
Run Code Online (Sandbox Code Playgroud)
然后安装以下JEdit插件:
现在,配置您的Apache Ant:
SET JAVA_HOME=C:\Sanbox\jdk8是时候配置JEdit Ant插件了
然后创建一个新的Java项目:
瞧!此时,JEdit将在工具栏中显示四个按钮:构建应用程序,编译,清理和运行应用程序.它们基于build.xml文件,并根据相应的Ant任务执行.你很高兴,你可以开始编写lambda表达式并使用新的API :-)
在上一个开发人员预览版(b50)中,实现了很少的并行性.我可以看到他们在一个单独的分支中做了更多工作(但是如果你想下载和构建OpenJDK8源代码).
但是,您可以使用在数组上Arrays.parallell创建ParallelIterable包装器的方法.这可以用来测试一些并行功能.
我做了一个例子来查找大数组中的素数.当我并行执行此操作时,我可以验证我的所有四个内核都已使用.
Integer[] source = new Integer[30000000];
for(int i=0; i<source.length; i++)
source[i] = i;
ParallelIterable<Integer> allIntegers = Arrays.parallel(source).filter(isPrime);
Iterable<Integer> primes = allIntegers.into(new LinkedList<Integer>());
Run Code Online (Sandbox Code Playgroud)
这使用Apache Ant 8.4.x和JDk8-b50在我的JEdit项目中编译并运行良好.
我希望这有帮助.
PD:
我没有isPrime在上面的代码中定义谓词,以免模糊示例的简单性.我很确定eveyone可以轻松定义一个primality谓词来试用这段代码.
我的建议是将 Netbeans 放在一边,使用纯文本编辑器编辑 Java 代码,然后使用 Java 8 工具链从命令提示符编译并运行它。这样您就可以确定您的问题不是由 Netbeans 问题引起的。
| 归档时间: |
|
| 查看次数: |
2199 次 |
| 最近记录: |