Kotlin SelectClause0

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin SelectClause0相关的知识,希望对你有一定的参考价值。

    @Test
    fun `test SelectClause0`() = runBlocking<Unit> 
        val job1 = GlobalScope.launch 
            delay(100)
            println("Job 1")
        

        val job2 = GlobalScope.launch 
            delay(10)
            println("Job 2")
        
        select<Unit> 
            job1.onJoin  println("Job  1 on Job") 
            job2.onJoin  println("Job  2 on Job") 
        

        delay(1000)

    

执行顺序

点进去看 

onJoin 方法

 

    @Test
    fun `test SelectClause2`() = runBlocking<Unit> 
        val channels = listOf(Channel<Int>(), Channel<Int>())
        println(channels)
        launch(Dispatchers.IO) 
            select<Unit> 
                launch 
                    delay(10)
                    channels[1].onSend(200)  sendChannel ->
                        println("sent on $sendChannel")
                    
                
                launch 
                    delay(100)
                    channels[0].onSend(100)  sendChannel ->
                        println("sent on $sendChannel")
                    
                
            
        

        GlobalScope.launch 
            println(channels[0].receive())
        
        GlobalScope.launch 
            println(channels[1].receive())
        
        delay(100)
    

 

 

以上是关于Kotlin SelectClause0的主要内容,如果未能解决你的问题,请参考以下文章

kotlin-反射

Kotlin 对象枚举委托

Kotlin|Kotlin反射

KotlinKotlin 语言简介 ( Kotlin 语言发展 | Kotlin 语言与 Java 虚拟机 | Java 与 Kotlin 联系 | Kotlin 跨平台特性 )

Kotlin|Kotlin反射

Kotlin初识Kotlin