lm-sistemi-software-distrib.../src/main/kotlin/util/future/Main.kt

25 lines
571 B
Kotlin

package util.future
import kotlinx.coroutines.cancelAndJoin
import kotlinx.coroutines.runBlocking
import java.util.concurrent.Future
import kotlin.time.ExperimentalTime
import kotlin.time.measureTime
@ExperimentalTime
fun main() = runBlocking {
val (math, job) = FutureMathImpl().toFutureHandler(FutureMath::class.java)
lateinit var sums: List<Future<Int>>
val elapsed = measureTime {
sums = (0 until 100).map { math.add(it, it * 2) }
}
println("Elapsed time: $elapsed")
sums.forEach { println(it.get()) }
job.cancelAndJoin()
}