Сделать уникальный идентификатор только из чисел?

В программе я пытаюсь сделать уникальные номера идентификаторов. Я использовал этот способ:

AtomicInteger count = new AtomicInteger(0);
count.incrementAndGet();
int pid = count.get();
System.out.println("pid: " + pid);

Но мой профессор сказал это:

Еще одна проблема - генерация pid. Все, что вы делаете, это получаете следующее целое число, начиная с 0. Что произойдет, когда вы достигнете конца таблицы процессов? Вы должны были придумать свой собственный алгоритм генерации pid, который работает в соответствии со спецификацией проекта, то есть он циклически перебирает числа от 0 до 99, а затем, когда он возвращается к низкому числу, он начинается с самого низкого доступного pid. Есть много способов реализовать такой алгоритм, но самое простое, что нужно сделать, это добавить 1 мод 100, а затем продолжать поиск, пока не найдете доступный pid. Конечно, это означает, что вы должны следить за тем, какие пиджи доступны.

Как я могу это сделать?

1 ответ

Мне объяснение вашего профессора совершенно ясно - есть ли какая-то конкретная часть, которую вы не понимаете?

Если вы понимаете отдельные части, разделите задачу на более мелкие подзадачи и выполняйте их одну за другой. подобно

  1. циклически перебирать числа от 0 до 99 (после 99 следующее число снова должно быть 0)
  2. добавить средство для хранения сгенерированных на данный момент чисел (например, в коллекции)
  3. добавить средство, чтобы проверить, что текущий номер еще не используется
  4. (добавьте средство для освобождения номера используемого процесса, когда связанный процесс завершится - из описания не ясно, нужно ли вам это.)
Другие вопросы по тегам