![JAR search and dependency download from the Maven repository](/logo.png)
ru.hnau.jutils.Main.kt Maven / Gradle / Ivy
package ru.hnau.jutils
import kotlinx.coroutines.*
import ru.hnau.jutils.coroutines.async
import ru.hnau.jutils.coroutines.deferred.deferred
import ru.hnau.jutils.coroutines.delay
import ru.hnau.jutils.coroutines.launch
import ru.hnau.jutils.producer.locked_producer.CompletableLockedProducer
import ru.hnau.jutils.producer.locked_producer.SuspendLockedProducer
import kotlin.concurrent.thread
object Main {
@JvmStatic
fun main(args: Array) = runBlocking {
val started = TimeValue.now()
print("Start", started)
val deferred = Dispatchers.IO.async(start = CoroutineStart.LAZY) {
deferred {
print("Coroutine start", started)
thread {
Thread.sleep(TimeValue.SECOND.milliseconds)
print("Coroutine end", started)
complete(5)
}
}.await()
}
delay(TimeValue.SECOND * 2)
print("After pause", started)
val result = deferred.await()
print("Result: $result", started)
}
private fun print(
msg: String,
started: TimeValue
) =
println("$msg [${(TimeValue.now() - started).toLevelsString()}]")
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy