Я знаю, что каналы являются экспериментальными, и мы можем думать о каналах так же, как о очереди блокировки в Java.сказанное позволяет взглянуть на этот простой блок кода :
fun main(args: Array<String>) {
val channel = Channel<Int>()
GlobalScope.launch {
for (x in 1..50000) {
println("from channel $x")
channel.send(x * x)
}
}
// here we print five received integers:
runBlocking {repeat(5) { println(channel.receive()) }}
println("Done!")
}
Я хотел бы знать, что происходит с остальными целыми числами.посмотрите на результат выполнения этого:
from channel 1
1
from channel 2
from channel 3
4
9
from channel 4
from channel 5
16
from channel 6
25
Done!
почему он не напечатал все 50000 целых чисел?У меня есть это в глобальном масштабе.поэтому эта строка: println("from channel $x")
должна была быть вызвана 50000 раз.почему не сделал?