Я знаю, что могу ждать на нескольких каналах, используя синтаксис select {}
в Go, и ждать на нескольких файловых дескрипторах, используя syscall.Select()
или подобные функции. А можно ли ждать на обоих каналах сразу?
Для фона я хочу иметь горутину, которая принимает сообщения по каналу и пересылает их через соединение сокета (, предоставленное gozmq), одновременно ожидая ответов на подключение к сокету.
Из-за требований безопасности потоков базовой библиотеки к сокету можно получить доступ только в одном потоке за раз, поэтому мне было интересно, есть ли способ справиться с этим из одной горутины.