У меня проблемы с пониманием этого кода ... Я ожидал чего-то похожего на многопоточность, когда я получу вывод со случайными "nooo" и "yaaaay", перемежающимися с каждым другое, поскольку они оба выполняют печать асинхронно, но я обнаружил, что основной поток, кажется, блокируется при первом вызове coroutine.resume () и, таким образом, предотвращает запуск следующего, пока первый не сработает.
Если это так. предполагаемые сопрограммы операций, для чего они полезны и как мне достичь цели, на которую я надеялся? Придется ли мне реализовать свой собственный планировщик, чтобы эти сопрограммы работали асинхронно? Потому что это кажется беспорядочным, и я также могу использовать функции!
co1 = coroutine.create(function ()
local i = 1
while i < 200 do
print("nooo")
i = i + 1
end
coroutine.yield()
end)
co2 = coroutine.create(function ()
local i = 1
while i < 200 do
print("yaaaay")
i = i + 1
end
coroutine.yield()
end)
coroutine.resume(co1)
coroutine.resume(co2)