История изменений
Исправление
Legioner,
(текущая версия)
:
Тут пример. Я затрудняюсь сказать, насколько тут зелёные потоки оправданы. С одной стороны вроде верно. С другой стороны есть lock-free структуры данных; можно просто алгоритм переписать так, чтобы там не было последовательно выполняющихся потоков, иначе зачем они вообще нужны?
На Go можно некоторые алгоритмы очень красиво записывать с помощью горутин. Например обход дерева — одна горутина обходит дерево и выплёвывает вершины в канал, вторая горутина их читает и обрабатывает. Это итератор такой. Реализовывать его «ручками» будет куда больше кода. Но в общем то ручная реализация всё равно будет быстрей.
Исходная версия
Legioner,
:
Тут пример. Я затрудняюсь сказать, насколько тут зелёные потоки оправданы. С одной стороны вроде верно. С другой стороны есть lock-free структуры данных; можно просто алгоритм переписать так, чтобы там не было последовательно выполняющихся потоков.