kotlin コルーチン ブロードキャスト パイプライン BroadcastChannel、サブスクリプション パイプライン openSubscription

kotlin コルーチン ブロードキャスト パイプライン BroadcastChannel、サブスクリプション パイプライン openSubscription

 

import kotlinx.coroutines.*
import kotlinx.coroutines.channels.*

fun main(args: Array<String>) {
    //广播消息
    //也可以把普通Channel转换成广播Channel
    //val channel = Channel<Int>()
    //val broadcast = channel.broadcast(5)
    val broadcastChannel = BroadcastChannel<Int>(5)

    CoroutineScope(Dispatchers.IO).launch {
        var i = 0
        while (true) {
            broadcastChannel.send(i)
            i++

            delay(1000)
        }
    }

    //订阅消息
    val receiveChannel1 = broadcastChannel.openSubscription()
    val receiveChannel2 = broadcastChannel.openSubscription()
    runBlocking {
        while (true) {
            var v1 = receiveChannel1.receive()
            println("rc1 - $v1")

            var v2 = receiveChannel2.receive()
            println("rc2 - $v2")
        }
    }
}

 

 

 

kotlin コルーチン受信パイプライン ReceiveChannel プロデューサー、Produce_kotlin、Produce_zhangphil のブログ - CSDN ブログrunBlocking は、時間のかかる操作を実行するために内部的に 3 つのコルーチンを開始します。出力から、3 つのコルーチンが同時に実行されることがわかります。RunBlocking は 3 つのコルーチンの実行まで待機します。終了後、出力結果には明確な順序があります。runBlocking は同じスコープのコルーチンが完了するまで待機してから終了します。 runBlocking 自体はスレッドをブロックしますが、内部で実行されているコルーチンはブロックされません。runBlocking の後の kotlin の runBlocking コードは、run 内の同じスコープのすべてのコルーチンの後でのみ実行でき、runBlocking はそれが存在するスレッドをブロックします。kotlin コルーチン パイプライン チャネル。_kotlin プロデュースhttps://blog.csdn.net/zhangphil/article/details/131103072

kotlin コルーチン チャネル channel_zhangphil のブログ - CSDN ブログrunBlocking は、時間のかかる操作を実行するために 3 つのコルーチンを内部的に開始します。出力から、3 つのコルーチンが同時に実行されていることがわかります。runBlocking は、3 つのコルーチンの実行が完了するまで待機してから終了します。出力結果は明確な順序で表示されます。runBlocking は同じスコープのコルーチンが完了するまで待機してから終了します。 runBlocking 自体はスレッドをブロックしますが、内部で実行されているコルーチンはブロックされません。runBlocking の後の kotlin の runBlocking コードは、run 内の同じスコープのすべてのコルーチンの後でのみ実行でき、runBlocking はそれが存在するスレッドをブロックします。kotlin コルーチン パイプライン チャネル。https://blog.csdn.net/zhangphil/article/details/131096899

https://blog.csdn.net/zhangphil/category_12224054.html https://blog.csdn.net/zhangphil/category_12224054.html

 

おすすめ

転載: blog.csdn.net/zhangphil/article/details/131103698