📅  最后修改于: 2023-12-03 15:17:09.874000             🧑  作者: Mango
Kotlin 协程通道是一种基于协程的线程安全通信方式。在协程中使用通道,可以方便地实现多个协程之间的消息传递。本文将介绍 Kotlin 协程通道的使用方式、特点以及示例代码。
创建协程通道的方式有两种:Channel()
和 broadcast()
。其中,Channel()
创建的是单个生产者、单个消费者的通道,而 broadcast()
创建的是单个生产者、多个消费者的广播通道。
// 创建一个通道,类型为 String
val channel = Channel<String>()
// 生产者向通道中发送消息
launch {
channel.send("Hello Kotlin Channel!")
}
// 消费者从通道中接收消息
launch {
val message = channel.receive()
println(message)
}
// 创建一个广播通道,类型为 String
val broadcastChannel = BroadcastChannel<String>(Channel.CONFLATED)
// 生产者向通道中发送消息
launch {
broadcastChannel.send("Hello Kotlin Broadcast Channel!")
}
// 多个消费者从通道中接收消息
repeat(3) {
launch {
val message = broadcastChannel.openSubscription().receive()
println(message)
}
}
Kotlin 协程通道的主要特点包括:
import kotlinx.coroutines.*
import kotlinx.coroutines.channels.*
fun main() = runBlocking {
// 创建一个通道,类型为 String
val channel = Channel<String>()
// 生产者向通道中发送消息
launch {
channel.send("Hello Kotlin Channel!")
}
// 消费者从通道中接收消息
launch {
val message = channel.receive()
println(message)
}
// 创建一个广播通道,类型为 String
val broadcastChannel = BroadcastChannel<String>(Channel.CONFLATED)
// 生产者向通道中发送消息
launch {
broadcastChannel.send("Hello Kotlin Broadcast Channel!")
}
// 多个消费者从通道中接收消息
repeat(3) {
launch {
val message = broadcastChannel.openSubscription().receive()
println(message)
}
}
}
以上就是 Kotlin 协程通道的介绍,希望可以帮助到大家的开发工作。