powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Кольцевой буфер или TObjectQueue
3 сообщений из 3, страница 1 из 1
Кольцевой буфер или TObjectQueue
    #39729482
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я использую для передачи данных между потоками буфер в виде TObjectQueue с критическими секциями (важен порядок обработки), но мне не очень нравиться задержки в ожидании, когда потоков становиться более 50. На страницах интернета внезапно узнал, что есть lock-free решение в виде кольцевого буфера.
http://forum.vingrad.ru/forum/topic-60076/anchor-entry480469/15.html
Но у меня есть одно ограничение - буфер должен уметь расти, если потоки-читатели не успевают за потоками-писателями. Т.е. я не могу указать размер буфера.
А при решении с очередями происходит тоже не очень хорошие вещи при увеличении Capacity

А может вместо критических секций использовать события? Что посоветуете?
...
Рейтинг: 0 / 0
Кольцевой буфер или TObjectQueue
    #39729492
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbА может вместо критических секций использовать события? Что посоветуете?

Я бы посоветовал покопаться в коде этого куя и найти откуда берутся задержки в ожидании. У
хорошего куя задержкам взяться практически неоткуда, ибо критическая секция берётся на
считанную пару команд процессора.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Кольцевой буфер или TObjectQueue
    #39729495
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если есть неконтролируемый рост, значит следует не буфер увеличивать, а сделать приостановку работы -- чтобы "писатели" немного притормозились и перестали кашу варить, пока предыдущие данные не обработаются и учередь не освободится.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Кольцевой буфер или TObjectQueue
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]