使用新的fork/join框架而不仅仅是在开始时将大任务分成N个子任务,将它们发送到缓存的线程池(来自Executors)并等待每个任务完成,有什么好处?我没有看到使用fork/join抽象如何简化问题或使解决方案从我们多年来的工作中提高效率.
例如,教程示例中的并行化模糊算法可以像这样实现:
public class Blur implements Runnable {
private int[] mSource;
private int mStart;
private int mLength;
private int[] mDestination;
private int mBlurWidth = 15; // Processing window size, should be odd.
public ForkBlur(int[] src, int start, int length, int[] dst) {
mSource = src;
mStart = start;
mLength = length;
mDestination = dst;
}
public void run() {
computeDirectly();
}
protected void computeDirectly() {
// As in the example, omitted for brevity
} …Run Code Online (Sandbox Code Playgroud) 如何区分正在运行的Java线程和本机线程?
在Linux中,每个子进程都会有Parent进程,并且他们说0是所有进程的父进程,是否会有所有分叉Java线程的Parent线程?
我如何知道哪个Java线程与OS线程相关(如果Java线程支持本机进程线程).
是否存在Java线程和OS线程的命名约定?
可以从其他Java代码中挂起或终止正在运行的Java线程吗?
我有一个运行JVM有两个线程.是否可以使用ps -axl在我的Linux操作系统上看到这些正在运行的线程?我试图找出操作系统给我的线程的优先级.关于这个问题,其它更多信息在这里.
我希望能够使用即将推出的并发库,该库将
根据本网站包含在Java 7中.
它似乎被命名为JSR166.
在大多数地方,它的参考实现被称为jsr166y,而很少有资源称它为jsr166z.
我为每个参考实现发现了两个完全不同的 javadoc.
现在,哪些实现将包含在Java 7中?
编辑
虽然回答的人建议jsr166y是Java 7的东西,但我从JavaOne 发现了这个文档(TS-5515).本文档引用Java 7,但提到的LinkedAsyncAction仅存在于jsr166z javadocs中.(混乱...)