Size: a a a

2020 June 10

DP

Daniel Podolsky in Go-go!
Знаете, очереди можно использовать не только для этого
расскажите нам, пожалуйста, для чего можно еще использовать очереди
источник

AK

Andrey Kartashov in Go-go!
Вообще неблокирующую очередь наверное легко реализовать.
источник

DP

Daniel Podolsky in Go-go!
ну - если понимать задачу. пока для меня неблокирующая очередь выглядит как буферизованный канал
источник

in Go-go!
Daniel Podolsky
расскажите нам, пожалуйста, для чего можно еще использовать очереди
Скорее даже не "для чего", а "как"
источник

DP

Daniel Podolsky in Go-go!
Скорее даже не "для чего", а "как"
расскажите нам, пожалуйста, как можно еще использовать очереди
источник

AK

Andrey Kartashov in Go-go!
make(chan int, дохулиард)
источник

AK

Artem Krapivin in Go-go!
Скорее даже не "для чего", а "как"
да, пожалуйста, будьте чуть менее таинственным знатоком...
источник

AK

Andrey Kartashov in Go-go!
Andrey Kartashov
make(chan int, дохулиард)
только память надо выделять под это.
источник

S

Serj in Go-go!
народ, а что за прикол, почему play.golang не подсвечивает синтаксис?
у них фронтендер отказался цветовую схему вводить?
источник

SN

Stanislav N. in Go-go!
Serj
народ, а что за прикол, почему play.golang не подсвечивает синтаксис?
у них фронтендер отказался цветовую схему вводить?
Потому что там это не предусмотрено
источник

DP

Daniel Podolsky in Go-go!
Serj
народ, а что за прикол, почему play.golang не подсвечивает синтаксис?
у них фронтендер отказался цветовую схему вводить?
он и внешние пакеты не умеет, только std lib
источник

in Go-go!
Например, такой сценарий, чисто теоретически:
1. У нас есть определённое кол-во горутин, которые получают условные "задачи". Причём новые задачи должны поступать постоянно
2. Эти горутины пушат в очередь новые задачи. Получается, очередь также выступает временным хранилищем задач
3. Есть горутины, которые забирают из очереди эти задачи и выполняют их. Но эти горутины доступны не всегда, я не могу придумать почему )0))
Таким образом если мы используем буф. канал, то рано или поздно он может переполниться, так как горутины-выполнятели недоступны. Мы нарушаем ТЗ
А если мы будем юзать очереди, то очередь будет хранить задачи хоть до посинения, пока горутины-выполнятели их не заберут
источник

S

Serj in Go-go!
это прям печальненько.
видел альтернативу на gojs, у них с этим всё ок.
хочется без иде попрогать, пока изучаешь тур, а тут синтаксис даже не подсвечивается :(

зы. даже в туре подсвечивается синтаксис
источник

DP

Daniel Podolsky in Go-go!
Serj
это прям печальненько.
видел альтернативу на gojs, у них с этим всё ок.
хочется без иде попрогать, пока изучаешь тур, а тут синтаксис даже не подсвечивается :(

зы. даже в туре подсвечивается синтаксис
жизнь - боль
источник

DP

Daniel Podolsky in Go-go!
Например, такой сценарий, чисто теоретически:
1. У нас есть определённое кол-во горутин, которые получают условные "задачи". Причём новые задачи должны поступать постоянно
2. Эти горутины пушат в очередь новые задачи. Получается, очередь также выступает временным хранилищем задач
3. Есть горутины, которые забирают из очереди эти задачи и выполняют их. Но эти горутины доступны не всегда, я не могу придумать почему )0))
Таким образом если мы используем буф. канал, то рано или поздно он может переполниться, так как горутины-выполнятели недоступны. Мы нарушаем ТЗ
А если мы будем юзать очереди, то очередь будет хранить задачи хоть до посинения, пока горутины-выполнятели их не заберут
а как сформулированно ТЗ, которое мы, якобы, нарушаем?
источник

in Go-go!
Daniel Podolsky
а как сформулированно ТЗ, которое мы, якобы, нарушаем?
Там и сформулировано )
источник

in Go-go!
Daniel Podolsky
а как сформулированно ТЗ, которое мы, якобы, нарушаем?
Но, честно говоря, я не могу прямо сейчас привести пример, где очереди действительно нужны. Но они точно где-то нужны
источник

AK

Andrey Kartashov in Go-go!
Например, такой сценарий, чисто теоретически:
1. У нас есть определённое кол-во горутин, которые получают условные "задачи". Причём новые задачи должны поступать постоянно
2. Эти горутины пушат в очередь новые задачи. Получается, очередь также выступает временным хранилищем задач
3. Есть горутины, которые забирают из очереди эти задачи и выполняют их. Но эти горутины доступны не всегда, я не могу придумать почему )0))
Таким образом если мы используем буф. канал, то рано или поздно он может переполниться, так как горутины-выполнятели недоступны. Мы нарушаем ТЗ
А если мы будем юзать очереди, то очередь будет хранить задачи хоть до посинения, пока горутины-выполнятели их не заберут
Проблема в том, что "до посинения" - не получится. Всё равно будет какое-то ограничение
источник

AK

Andrey Kartashov in Go-go!
Можно было сделать каналы с динамическим буфером, как слайсы, но создатели языка решили иначе. Возможно потому, что это более редкий вариант.
источник

DP

Daniel Podolsky in Go-go!
Но, честно говоря, я не могу прямо сейчас привести пример, где очереди действительно нужны. Но они точно где-то нужны
очереди нужны там, где:

1. скорость поступления заданий на промежутке времени Тмалое выше скорости их исполнения
2. скорость исполнения заданий на промежутке времени Тбольшое выше скорости их поступления

в любом случае, нам всегда нужна очередь ограниченного размера, и размер определяется разницей между пиковой скоростью поступления задач и максимальной скоростью их исполнения
источник