06.01.2023, 15:06
|
|
Профессор
|
|
Регистрация: 14.11.2014
Сообщений: 186
|
|
Сообщение от voraa
|
Не совсем.
pool - это не совсем очередь. Добавляется только в конец. А выбирается при просмотре от начала до конца все операции, которые могут быть выполнены.
Просмотр пула делается так
Берем операцию.
Проверяем, может ли она быть выполнена (участников нет в буфере).
Если может, то отправляем операцию на выполнение. При этом ее участники добавляются в буфер.
Берем след. операцию из пула
и т.д.
Т.е добавляем мы только в конец, а взять можем откуда угодно, просматривая пул. При этом взятая операция, конечно, удаляется из пула.
Просмотр пула инициируется при двух событиях:
- Новая операция добавлена в конец пула,
- Выполнилась какая то ранее отправленная на выполнение операция. При этом ее участники удаляются из буфера.
Такой алгоритм я предлагаю.
|
Получается что общая очередь всех операций не нужна?
|