All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ru.hnau.jutils.Main.kt Maven / Gradle / Ivy

There is a newer version: 2.1.1
Show newest version
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