Kotlin Channels入门
学习使用协程通道在不同协程之间安全传递数据流。 · 难度:入门 · +15XP
Channel基础
Channel是Kotlin协程中用于协程间通信的管道,类似于BlockingQueue但非阻塞。
创建和发送
import kotlinx.coroutines.*
import kotlinx.coroutines.channels.*
fun main() = runBlocking {
val channel = Channel()
launch {
for (i in 1..5) {
channel.send(i)
}
channel.close()
}
for (value in channel) {
println(value)
}
}
Channel类型
| 类型 | 容量 |
|---|---|
| Channel() | 无缓冲(Rendezvous) |
| Channel(10) | 有缓冲 |
| ConflatedChannel | 保留最新值 |
练习提示
创建一个生产者-消费者模式,生产者发送字符串,消费者接收并打印。