【发布时间】:2017-06-28 09:26:18
【问题描述】:
示例 1:
CometableFuture
.supplyAsync(new MySupplier())
.someCompletableFutureMethod(new SomeCompletableFutureComsumer())
ForkJoin 线程是否曾被阻塞?
示例 2:
final CompletableFuture cf = new CompletableFuture();
cf = executor.execute(new Runnable(){
public void run(){
//do work
cf.complete(result);
}
});
cf.whenComplete(new MyConsumer());
是否有任何涉及的踏板被阻塞?
(我知道,我应该使用 Callable 而不是 Runnable :)
有什么方法可以在不使用从 Future 继承的方法的情况下滥用 API 来阻塞任何线程(main、ForkJoin、executor)?
假设我没有使用任何阻塞 API(我知道 future.get() 块)。
【问题讨论】:
-
当您执行阻塞操作时它们会阻塞。你在问什么?
-
假设我没有使用任何阻塞 API 并且我没有调用 Thread.sleep。这是工作人员之间的辩论:)))
-
您在争论线程是否会无缘无故地自发阻塞?你能提供一些来自“是的”团队的论据吗?
-
拥护者有论据。到目前为止,您还没有提出任何内容。
-
或者辩论真的是“他们不能被阻止”与“好吧,他们可能会”?
标签: java multithreading java-8 completable-future