Как работает select с несколькими готовыми каналами?

Middle
137 просмотров
AFK Offer AI

Если несколько case готовы одновременно, Go выбирает случайный (uniform random). Это сделано намеренно чтобы избежать starvation — если бы выбирался первый, нижние case никогда не сработали бы при загруженных каналах. Рандом реализован через fastrand в runtime. Default case проверяется только если все каналы заблокированы.

Следующий вопрос

Как ты принимаешь решение о выборе базы данных?