Как я могу выполнить «выбор» для нескольких очередей. Очередь
одновременно?
Golang имеет желаемую функцию со своими каналами:
select {
case i1 = <-c1:
print("received ", i1, " from c1\n")
case c2 <- i2:
print("sent ", i2, " to c2\n")
case i3, ok := (<-c3): // same as: i3, ok := <-c3
if ok {
print("received ", i3, " from c3\n")
} else {
print("c3 is closed\n")
}
default:
print("no communication\n")
}
При этом первый разблокируемый канал выполняет соответствующий блок. Как мне добиться этого в Python?
Согласно ссылке , приведенной в ответе tux21b , желаемый тип очереди имеет следующие свойства:
Кроме того, каналы могут блокироваться, производители будут блокироваться, пока потребитель не получит элемент. Я не уверен, что очередь Python может это сделать.