, . , 100k :
val jobs = List(100_000) {
launch {
delay(1000L)
print(".")
}
}
jobs.forEach { it.join() }
, , , : while (isActive)
.
, :
fun main(args: Array<String>) = runBlocking {
val startTime = System.currentTimeMillis()
val jobs = arrayListOf<Job>()
jobs += launch {
var nextPrintTime = startTime
var i = 0
while (isActive) {
if (System.currentTimeMillis() >= nextPrintTime) {
println("Job1: Sleeping ${i++} ...")
nextPrintTime += 500L
}
}
}
jobs += launch {
while (isActive) {
if (System.currentTimeMillis() >= 42) {
println("Job2: Sleeping 42 ...")
delay(500L)
}
}
}
delay(1300L)
println("main: Cancelling the sleeping job!")
jobs.forEach { it.cancelAndJoin() }
}