Сделать уникальный идентификатор только из чисел?
В программе я пытаюсь сделать уникальные номера идентификаторов. Я использовал этот способ:
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 ответ
Мне объяснение вашего профессора совершенно ясно - есть ли какая-то конкретная часть, которую вы не понимаете?
Если вы понимаете отдельные части, разделите задачу на более мелкие подзадачи и выполняйте их одну за другой. подобно
- циклически перебирать числа от 0 до 99 (после 99 следующее число снова должно быть 0)
- добавить средство для хранения сгенерированных на данный момент чисел (например, в коллекции)
- добавить средство, чтобы проверить, что текущий номер еще не используется
- (добавьте средство для освобождения номера используемого процесса, когда связанный процесс завершится - из описания не ясно, нужно ли вам это.)