Ruckus
10/12/2018, 4:54 PMlaunch
(like GlobalScope
) your code will work without yield
.marcinmoskala
10/12/2018, 5:06 PMfun main(args: Array<String>) = runBlocking<Unit>(Dispatchers.Default) {
val job = launch {
var nextPrintTime = System.currentTimeMillis() + 500
while (isActive) {
if(System.currentTimeMillis() > nextPrintTime) {
println("World!")
nextPrintTime += 1000
}
}
}
println("Hello,")
delay(2000)
job.cancelAndJoin()
println("World")
}
or:
fun main(args: Array<String>) = runBlocking<Unit> {
val job = launch(Dispatchers.Default) {
var nextPrintTime = System.currentTimeMillis() + 500
while (isActive) {
if(System.currentTimeMillis() > nextPrintTime) {
println("World!")
nextPrintTime += 1000
}
}
}
println("Hello,")
delay(2000)
job.cancelAndJoin()
println("World")
}
marcinmoskala
10/12/2018, 5:06 PMgildor
10/13/2018, 3:18 AMwhile(true)
blocks the only available thread, doesn’t look as puzzler for megildor
10/13/2018, 3:19 AM