Классический подход — Michael-Scott queue: два атомарных указателя (head, tail), каждый узел с next. Enqueue: CAS на tail.next, потом CAS на tail. Dequeue: CAS на head. Нужен помощник для продвижения tail если другая горутина не успела. В Go удобно через atomic.Pointer[Node]. Но на практике channel часто лучше и проще.
Как реализовать lock-free очередь на Go?
Senior
43 просмотровAFK Offer AI
Что такое driver.Value?