相对于普通的channel
@Test
fun `test broadcast`() = runBlocking<Unit> {
val broadcastChannel = BroadcastChannel<Int>(Channel.BUFFERED)
GlobalScope.launch {
List(3) {
delay(100)
broadcastChannel.send(it)
}
broadcastChannel.close()
}
List(3) { index ->
GlobalScope.launch {
val receiveChannel = broadcastChannel.openSubscription()
for (i in receiveChannel) {
println("[#$index] received :$i")
}
}
}.joinAll()
}
@Test
fun `test br