LINUX.ORG.RU

История изменений

Исправление Legioner, (текущая версия) :

Тут пример. Я затрудняюсь сказать, насколько тут зелёные потоки оправданы. С одной стороны вроде верно. С другой стороны есть lock-free структуры данных; можно просто алгоритм переписать так, чтобы там не было последовательно выполняющихся потоков, иначе зачем они вообще нужны?

На Go можно некоторые алгоритмы очень красиво записывать с помощью горутин. Например обход дерева — одна горутина обходит дерево и выплёвывает вершины в канал, вторая горутина их читает и обрабатывает. Это итератор такой. Реализовывать его «ручками» будет куда больше кода. Но в общем то ручная реализация всё равно будет быстрей.

Исходная версия Legioner, :

Тут пример. Я затрудняюсь сказать, насколько тут зелёные потоки оправданы. С одной стороны вроде верно. С другой стороны есть lock-free структуры данных; можно просто алгоритм переписать так, чтобы там не было последовательно выполняющихся потоков.