作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究一些代码,这是一个方法,我不太确定它的作用:
1) 有一个RunnableFuture
,为什么它被分配了 FutureTask
,为什么不FutureTask = new Futuretask
?
2) new SortProcessor<E>
是什么意思,是来自 Java 还是其他类。
public synchronized void sort() {
if (this.internalState == InternalState.READ) throw new IllegalStateException();
final RunnableFuture<E> leftFuture = new FutureTask<E>(new SortProcessor<E>(this.leftChild));
final RunnableFuture<E> rightFuture = new FutureTask<E>(new SortProcessor<E>(this.rightChild));
new Thread(leftFuture, "left-child").start();
new Thread(rightFuture, "right-child").start();
try {
this.leftCache = leftFuture.get();
this.rightCache = rightFuture.get();
} catch (final InterruptedException interrupt) {
throw new ThreadDeath();
} catch (final ExecutionException exception) {
final Throwable cause = exception.getCause();
if (cause instanceof Error) throw (Error) cause;
if (cause instanceof RuntimeException) throw (RuntimeException) cause;
throw new AssertionError();
}
if (this.leftCache != null | this.rightCache != null) {
this.internalState = InternalState.READ;
}
}
最佳答案
RunnableFuture
是一个接口(interface),FutureTask
是该接口(interface)的具体实现。为了获得更大的灵 active ,将变量声明为抽象类型是一个很好的做法。
SortProcessor
必须是实现了 Callable
接口(interface)的自定义类,才能在 FutureTask
的构造函数中使用。
看起来两个线程正在启动异步任务来对某种类型的树进行排序
关于Java - RunnableFuture 和 SortProcessor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16671857/
我正在研究一些代码,这是一个方法,我不太确定它的作用: 1) 有一个RunnableFuture ,为什么它被分配了 FutureTask ,为什么不FutureTask = new Futureta
我是一名优秀的程序员,十分优秀!