- 浏览: 565819 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (344)
- ··············未分类············· (33)
- Eclipse 插件 (15)
- EDA 工具 (1)
- Linux/Unix (3)
- Java (43)
- Java Applet (1)
- Java Draw2d (22)
- Java Draw2d version2 (6)
- Java GEF (2)
- Java SWT (21)
- Java SWT Image 图像 (21)
- Java SWT Tree (16)
- Java SWT Table (4)
- Java SWT TableViewer (11)
- Java SWTbot (4)
- Java Test (2)
- Java Thread 多线程 (22)
- Java Zest (5)
- RC2_3S400学习笔记 (16)
- tcl 脚本 (10)
- Verilog (7)
- XML (6)
- 国家 (5)
- 感叹 (4)
- 面试题 (9)
- 生活 (36)
- 足球 世界杯 (8)
- 老公看你的 (3)
- web开发 (1)
- 数据结构——图 (7)
- c language (1)
最新评论
-
zxjlwt:
路过素人派http://surenpi.com
SWT 树的事件 SWT.Selection SWT.CHECK SWT.DefaultSelection -
hj01kkk:
1楼用法正解
JDK 7 中的 Fork/Join 模式 -
fish_no7:
使用 new SortTask().fork()
JDK 7 中的 Fork/Join 模式 -
wpf523:
mark
Java 多线程例子6 线程安全 线程同步 同步代码块 同步函数 -
uniquejava:
以前碰到过,估计是在icu包中实现了双击自动选中一段文本的功能 ...
java.lang.NoClassDefFoundError: com/ibm/icu/text/BreakIterator
参考1:http://www.ibm.com/developerworks/cn/java/j-lo-forkjoin/#list1
JDK 7 中的 Fork/Join 模式
参考2:http://www.ibm.com/developerworks/cn/java/j-jtp11137.html
Java 理论与实践: 应用 fork-join 框架
参考3:http://www.ibm.com/developerworks/cn/java/j-jtp03048.html
Java 理论与实践: 应用 fork-join 框架,第 2 部分
参考4:http://www.ibm.com/developerworks/cn/java/j-java7.html
Java 技术,IBM 风格: Java 技术的新纪元
看看了《JDK 7 中的 Fork/Join 模式》本来想试一试,结果没有试出来。盼高手指点:SortTask中找不到coInvoke函数了。
程序是:
public class TestForkJoinSimple { private static final int NARRAY = 16; //For demo only long[] array = new long[NARRAY]; Random rand = new Random(); @Before public void setUp() { for (int i = 0; i < array.length; i++) { array[i] = rand.nextLong()%100; //For demo only } System.out.println("Initial Array: " + Arrays.toString(array)); } @Test public void testSort() throws Exception { ForkJoinTask sort = new SortTask(array); ForkJoinPool fjpool = new ForkJoinPool(); fjpool.submit(sort); fjpool.shutdown(); fjpool.awaitTermination(30, TimeUnit.SECONDS); assertTrue(checkSorted(array)); } boolean checkSorted(long[] a) { for (int i = 0; i < a.length - 1; i++) { if (a[i] > (a[i + 1])) { return false; } } return true; } } class SortTask extends RecursiveAction { final long[] array; final int lo; final int hi; private int THRESHOLD = 0; //For demo only public SortTask(long[] array) { this.array = array; this.lo = 0; this.hi = array.length - 1; } public SortTask(long[] array, int lo, int hi) { this.array = array; this.lo = lo; this.hi = hi; } protected void compute() { if (hi - lo < THRESHOLD) sequentiallySort(array, lo, hi); else { int pivot = partition(array, lo, hi); System.out.println("\npivot = " + pivot + ", low = " + lo + ", high = " + hi); System.out.println("array" + Arrays.toString(array)); coInvoke(new SortTask(array, lo, pivot - 1), new SortTask(array, pivot + 1, hi)); } } private int partition(long[] array, int lo, int hi) { long x = array[hi]; int i = lo - 1; for (int j = lo; j < hi; j++) { if (array[j] <= x) { i++; swap(array, i, j); } } swap(array, i + 1, hi); return i + 1; } private void swap(long[] array, int i, int j) { if (i != j) { long temp = array[i]; array[i] = array[j]; array[j] = temp; } } private void sequentiallySort(long[] array, int lo, int hi) { Arrays.sort(array, lo, hi + 1); } }
详细说明看参考1,需要jdk6和JSR-166y(http://g.oswego.edu/dl/concurrency-interest/)。
发表评论
-
多线程的Wait返回它等待的下方
2014-08-15 14:16 557多线程的Wait返回它等待的下方。 Java Code ... -
多线程构造函数
2014-04-04 11:50 2092http://hi.baidu.com/tengxiaofe ... -
关于volatile
2013-01-28 13:24 606Volatile修饰的成员变量在每次被线程访问时,都强迫从共享 ... -
Java 多线程例子10 线程之间通信 wait notify notifyAll
2010-07-26 11:24 1315回答问题:http://www.iteye.com/probl ... -
java Thread 停止 开始 暂停
2010-07-23 15:07 241691,写了一个小程序: public class TestTh ... -
【转载】java Timer TimerTask
2010-07-22 11:31 18231,Timer Timer的实质上就是一个多线程,从它的类中 ... -
【转载】DelayQueue 的使用
2010-07-20 20:15 1341原文:http://ideasforjava.iteye.co ... -
多线程 CyclicBarrier
2010-07-20 19:38 967原文:http://blog.csdn.net/qian_34 ... -
java多线程 Semaphore CountDownLatch ScheduledExecutorService
2010-07-20 17:06 1843参考:http://www.ibm.com/developer ... -
java多线程 BlockingQueue 和 SynchronousQueues
2010-07-20 15:30 1464参考:http://www.ibm.com/developer ... -
利用多核CPU计算大的列表中的整数和 CyclicBarrier CountDownLatch ExecutorService
2010-07-20 14:12 1315原文:http://flysnow.iteye.c ... -
Java 多线程例子10 控制线程的生命 stop
2010-07-19 21:13 1306在Thread类中stop已经不推荐大家使用了,因为使用sto ... -
Java 多线程例子9 线程之间通信 wait notify notifyAll
2010-07-19 20:07 2859下面参照《Java就业培训教材》写了一个相似的线程之间通信的例 ... -
Java 多线程例子8 线程状态
2010-07-19 17:27 1237原文:http://shihaiyang.iteye.com/ ... -
Java 多线程例子7 线程安全 死锁
2010-07-19 17:07 1523死锁:在多个线程里对多个同步对象具有循环依赖时常会出现死锁。最 ... -
Java 多线程例子6 线程安全 线程同步 同步代码块 同步函数
2010-07-18 18:06 2314线程安全 出现线程安 ... -
Java 多线程例子5 实际例子的讨论
2010-07-18 15:18 10221,网络聊天程序,如QQ。 发送信息和接受信息肯定要连个线程 ... -
Java 多线程例子4 继承Thread 实现Runnable
2010-07-16 19:48 17221,Runnable例子 class ThreadDemo ... -
Java 多线程例子3 联合线程 join()
2010-07-16 17:57 22731,联合线程实际上就是 ... -
Java 多线程例子2 前台线程(用户线程) 后台线程(守护线程 ) setDaemon
2010-07-16 15:16 28851,setDaemon(true)后就是后台线程(守护线程 ) ...
相关推荐
JDK 7 中引入的 Fork/Join 模式是一种基于分治策略的并行编程模型,旨在简化在多核处理器环境下实现高效的并行计算。这一模式的核心思想是将复杂的大任务拆分成一系列小任务,然后将这些小任务并行执行,最后再合并...
Fork/Join框架是Java7引入的一种用于并行任务执行的框架,它允许将复杂任务拆分成多个子任务,并行执行,然后通过join操作将结果聚合。Fork/Join框架特别适合处理可以递归拆分的计算密集型任务,比如大数据集的搜索...
新特性主要涉及:对于JDK7中Fork/Join并行处理的升级;支持Lambda表达式;添加了Stream API;对于注解的拓展,加入了类型注解、重复注解;在G1回收器中支持字符串去重;内存空间中删除了永久代,引入了元空间。
在Java编程中,线程池和并发任务执行是常见的方式,但在某些场景下,我们可以利用JDK的ForkJoin框架来构建更加高效和易用的并发组件。ForkJoin框架自Java 7引入,它为处理大型任务提供了一种分解成多个子任务并行...
2. **多路归并排序(Fork/Join Framework)**:这是一个并行计算框架,用于将大型任务拆分为更小的子任务,以利用多核处理器的并行处理能力。 3. **字符串inswitch语句**:在switch语句中可以直接使用字符串,提高...
` 这样的写法在JDK7中成为可能。 JDK7还增强了异常处理,引入了“异常链”功能,允许一个异常捕获另一个异常,并将它们串联起来,便于追踪错误来源。此外,新的“catch多个异常”语法使得在一个catch块中处理多种...
而在JDK7中,实现了自动关闭资源的机制,只要资源实现了`java.lang.AutoCloseable`接口,就可以在try块中直接声明并使用,程序结束时会自动调用`close()`方法。 其次,多线程处理方面,JDK7引入了Fork/Join框架,它...
6. **Fork/Join框架(Fork/Join Framework)**:用于并行计算的新框架,基于工作窃取算法。 7. **新的Swing事件模型**:改进了Swing GUI库的事件处理机制。 8. **改进的JSON支持**:提供了一个新的`javax.json`包来...
在JDK 7中,垃圾回收机制得到了显著的优化。特别是对G1(Garbage First)收集器进行了增强,使得它在多核处理器上表现更佳,减少了应用程序的暂停时间,提高了吞吐量。 ##### 2.2 文件系统API增强 为了更好地支持...
JDK7引入了许多新特性,例如动态类型语言支持( invokedynamic 指令)、Project Coin的小改进(如 try-with-resources 语句、多 catch 块、改进的类型推断等),以及并发改进(如Fork/Join框架和Parallel Scanning)...
例如,动态语言支持、Fork/Join框架、并发工具的增强以及新的编译器——CTW(Compartment Type-Wise)等。这些更新显著提高了开发效率和程序性能。 针对Aarch64(也称为ARM64或AArch64)架构,这是一种64位指令集...
5. **JDK7新特性<五> fork/join 框架** Fork/Join框架是Java并行编程的一个重要工具,它基于分治策略,允许开发者将大任务拆分成小任务,然后并行执行,最后合并结果,显著提高了处理大规模计算任务的能力。 6. **...
6. ** 并发改进**:JDK 8在并发编程方面也做了改进,例如`Fork/Join`框架的改进,以及`ConcurrentHashMap`性能的提升。 7. ** Nashorn JavaScript引擎**:JDK 8引入了一个名为Nashorn的JavaScript引擎,允许Java...
在Java 7中,有几个关键的特性值得注意: 1. **多线程并发控制**:引入了Fork/Join框架,通过工作窃取算法提高并行计算效率,同时提供了`Phaser`、`CountDownLatch` 和 `CyclicBarrier` 等并发工具类。 2. **...
在JDK1.8中,有许多重要的更新和改进,其中最为人所知的可能就是Lambda表达式和Stream API的引入,它们极大地提升了Java语言的函数式编程能力。Lambda表达式使得匿名函数的编写更为简洁,可以更方便地处理回调和事件...
3. **多线程改进**:JDK 7提供了`Fork/Join`框架,这是一种基于工作窃取算法的并行编程模型,用于高效地执行大量可分解的任务。 4. **try-with-resources语句**:这个新特性允许自动关闭实现了`AutoCloseable`接口...
"JDK7" 是JDK的一个重要版本,引入了多个新特性,如动态类型语言支持、Fork/Join框架、try-with-resources语句等。 "Linux" 是一种开源的操作系统,广泛应用于服务器、桌面环境和其他嵌入式设备。 **详细知识点:**...
【标签】"jdk7"指代了Java平台的第七个主要版本,它在2011年发布,引入了许多新的特性,如try-with-resources语句、多线程的Fork/Join框架、改进的类型推断(Project Coin)、文件系统API(NIO.2)以及并发工具的...
在Java 7中,通过类型推断,我们可以更简洁地创建泛型实例,省略new表达式后的类型参数。例如: ```java List<String> list = new ArrayList(); // 可以简化为 List<String> list = new ArrayList(); ``` #### 4. ...
"jdk-7" 指的是Java SE(标准版)7,是Java的一个重要版本,引入了多个新特性,如动态类型语言支持( invokedynamic 字节码指令)、Fork/Join框架、并发改进等。"jdk" 是Java Development Kit的缩写,是开发Java应用...