Вопрос, скорее, к обсуждению — могут быть разные варианты...
Задача следующая: организовать очередь данных, передаваемых между потоками. Причем формирование данных происходит блоками — блок сформирован, передан, дальше с ним работает только принимающий поток. Какие-либо конфликты могут возникнуть только в самой очереди.
Какие будут соображения?
Добавлено спустя 47 секунд:
Да, и очень желательно, чтобы механизм был кроссплатформенный.
Threadsafe очередь
Модератор: Модераторы
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
- *vmr
- постоялец
- Сообщения: 168
- Зарегистрирован: 08.01.2007 00:46:07
- Откуда: Киев
- Контактная информация:
Давно использую закольцованный буффер-FIFO, с абсолютными индексами: http://en.wikipedia.org/wiki/Circular_queue
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
Зачем кольцевать? На чем блокировки делать?
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
Ничего не понял, честно говоря... Попробую завтра, выспавшись.
Добавлено спустя 18 часов 20 минут 25 секунд:
Я правильно понял, что блокировки не нужны, поскольку каждый из индексов изменяется только «своим» потоком (хотя и проверяется обоими)?
Добавлено спустя 18 часов 20 минут 25 секунд:
Я правильно понял, что блокировки не нужны, поскольку каждый из индексов изменяется только «своим» потоком (хотя и проверяется обоими)?
