Size: a a a

2021 June 03

p

pragus in Go-go!
Зачем мьютексы тут?
источник

AK

Andrey Kartashov in Go-go!
ну из него же надо будет выкидывать и добавлять новое
источник

AK

Andrey Kartashov in Go-go!
или ты про одну горутину со слайсом?
источник

N

Nekto in Go-go!
опять упираемся в проблему, что если задача протухла, то нужно об этом как можно скорее сказать. Если задача сдохла в середине очереди, то мы об этом не узнаем пока задачи впереди нее не будут выполнены
источник

VY

Vladislav Yarmak in Go-go!
это почему?
источник

AG

Andrei Grazhdankov in Go-go!
Queue priority может?
источник

AG

Andrei Grazhdankov in Go-go!
Heap
источник

N

Nekto in Go-go!
таак, если есть идеи почему не так. то расскажите plz, может я что-то упускаю.
источник

AG

Andrei Grazhdankov in Go-go!
Но там будет mutex нужен
источник

VY

Vladislav Yarmak in Go-go!
ну вот у вас там выше код, который работает под семафором. суть его в том, что не больше N слотов разбирают очередь
источник

p

pragus in Go-go!
Нет. Чисто работа с индексами.
источник

VY

Vladislav Yarmak in Go-go!
если то же самое сделать просто фиксированным числом воркеров, выгребая конкурентно из очереди, получится в сущности то же самое, но только очерёдность будет сохранена
источник

p

pragus in Go-go!
источник

N

Nekto in Go-go!
а как реализуется очередь - это что такое в вашей реализации?

В текущей реализации, если очередь 100к - то это 100к вызовов Acquire , а внутри Acquire есть код

select {
   case <-ctx.Done():
   case <-ready:
}

те если контекст истечет, то сразу семафор освободится с err
источник

VY

Vladislav Yarmak in Go-go!
щас очередь где хранится?
источник

VY

Vladislav Yarmak in Go-go!
просто в том, что запущенные горутины толпятся и ждут исполнения?
источник

N

Nekto in Go-go!
да, ограничены размером semaphore.Weighted()
источник

VY

Vladislav Yarmak in Go-go!
ага...
источник

N

Nekto in Go-go!
спасибо за идею, возможно это поможет, если не найду ничего лучше
источник

ВС

Владимир Столяров... in Go-go!
Если нужны приоритеты, посмотрите в сторону Heap, примеры организации очередей на нем можно легко найти
источник