1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/tinyframework-tiny

 / Детали:

О некоторых вопросах в PriorityQueueImpl

Предстоит сделать
Владелец
Создано  
04.03.2025
  1. В реализации PriorityQueueImpl каждый уровень приоритета содержит массив очередей, где каждая очередь представляет собой список элементов с одинаковым временем интервала (по умолчанию это одна секунда). Какие преимущества имеет такое решение? Почему не используется одна очередь на каждый уровень приоритета?

  2. При обновлении уровня приоритета в текущих условиях происходит следующее: если количество вызовов методов poll и remove достигает значения maxSize, то происходит повышение уровня приоритета. После завершения этого процесса значение callTimes не сбрасывается. Это приводит к следующим ситуациям:
    2.1 Когда уровень приоритета был недавно повышен, если после этого больше не будут вызываться методы poll или remove, то каждый последующий вызов метода offer будет приводить к повторному повышению уровня приоритета (значение callTimes остаётся равным maxSize).
    2.2 Когда уровень приоритета был недавно повышен, если после этого хотя бы один раз будет вызван метод poll или remove, то дальнейшие вызовы метода offer уже не будут приводить к повышению уровня приоритета (значение callTimes увеличивается, теперь оно больше maxSize).

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/tinyframework-tiny.git
git@api.gitlife.ru:oschina-mirror/tinyframework-tiny.git
oschina-mirror
tinyframework-tiny
tinyframework-tiny