Concurrency and Source Panels
Future Task Result
Run a callable on a thread and read its result through a FutureTask.
Future Task Result
FutureTaskResult.scala
import java.util.concurrent.Callable
import java.util.concurrent.FutureTask
class ScoreJob(base: Int) extends Callable[Int] {
def call(): Int = {
base + 10
}
}
object Main {
def main(args: Array[String]): Unit = {
val base =
val job = new ScoreJob(base)
val task = new FutureTask[Int](job)
val worker = Thread(task)
worker.start()
val score = task.get()
println("base=" + base)
println("score=" + score)
}
}
import java.util.concurrent.Callable
import java.util.concurrent.FutureTask
class ScoreJob(base: Int) extends Callable[Int] {
def call(): Int = {
base + 10
}
}
object Main {
def main(args: Array[String]): Unit = {
val base =
val job = new ScoreJob(base)
val task = new FutureTask[Int](job)
val worker = Thread(task)
worker.start()
val score = task.get()
println("base=" + base)
println("score=" + score)
}
}
import java.util.concurrent.Callable
import java.util.concurrent.FutureTask
class ScoreJob(base: Int) extends Callable[Int] {
def call(): Int = {
base + 10
}
}
object Main {
def main(args: Array[String]): Unit = {
val base =
val job = new ScoreJob(base)
val task = new FutureTask[Int](job)
val worker = Thread(task)
worker.start()
val score = task.get()
println("base=" + base)
println("score=" + score)
}
}
future-task
`FutureTask` stores the result produced by a worker thread so the main thread can read it after the task finishes.