gpt4 book ai didi

Java - RunnableFuture 和 SortProcessor

转载 作者:行者123 更新时间:2023-12-01 23:48:10 26 4
gpt4 key购买 nike

我正在研究一些代码,这是一个方法,我不太确定它的作用:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com