Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Третий архив вопросов и ответов (https://www.otvetnemail.ru/tretij-arhiv-voprosov-i-otvetov-807/)
-   -   Неблокируемый список (https://www.otvetnemail.ru/tretij-arhiv-voprosov-i-otvetov-807/neblokiruemyj-spisok-358025/)

Guest 30.09.2011 20:58

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


Часовой пояс GMT, время: 15:51.


© www.otvetnemail.ru - Форум вопросов и ответов.