1
我有一个HTML是输出(显示线程的结果),并完成后,所有的线程(我使用连接等待完成)显示跟踪线程失败
有时各个线程可以有例外。
- 如果我在任何线程中没有任何异常,我想在浏览器中显示HTML。
- 如果我在所有的线程异常话,我想如果我有一些例外,但不是所有的线程,然后我想显示的HTML
什么是最简单的不显示HTML
我有一个HTML是输出(显示线程的结果),并完成后,所有的线程(我使用连接等待完成)显示跟踪线程失败
有时各个线程可以有例外。
什么是最简单的不显示HTML
您可以使用CompletableFuture
为了这个目的,例如:
val future1: CompletableFuture<String> = CompletableFuture.supplyAsync {
println("This is your thread 1 code")
"<html><head><title>"
}
val future2: CompletableFuture<String> = CompletableFuture.supplyAsync {
println("This is your thread 2 code")
if (Random().nextBoolean()) throw RuntimeException("Failed")
"Title!</title></html></head>"
}
future1.thenCombine(future2, {result1, result2 -> result1 + result2}).whenComplete { s, throwable ->
if (throwable != null) {
println("failed")
} else {
println("done with $s")
}
}
而且在科特林1.1,你将能够写这样的代码更易读的方式:
async {
try {
val s1 = await(future1)
val s2 = await(future2)
println(s1 + s2)
} catch (e: Exception) {
println("failed")
}
}