Добрый день"Неблокируемый" - значит N ниток могут добавлять/удалять элементы списка не прибегая к мутексам или др. локерам"Список" - просто список, (а не контейнер). Т.е. элемент содержит указатель на следующий, напр.КодC++ (Qt)struct CData { ...CData * mNext; // следующий в спискеstatic volatile CData * mDataFirst; // указатель на первый элемент списка (голова)static volatile CData * mDataLast; // указатель на последний элемент списка (хвост)};Извлечение элемента из списка продвигает голову, помещение в список - хвост. Т.е. "запросы обрабатываются в порядке поступления" (FIFO). Заметим что в случае LIFO (стек, push/pop, хвоста нет) "неблокируемость" достигается очень легко. А как сделать здесь?Спасибо
|