Я работаю над назначением взаимного исключения, но когда я начал, я заметил начало идентификатора потока приложений в 9. Он не изменяется, когда я компилирую и выполняю его снова. Есть ли какая-то проблема, которую я пропущу, или могут ли идентификаторы Java Thread начинаться с произвольного числа? This question связан.Должны ли идентификаторы Java Thread всегда начинаться с 0?
Для тех, кто заинтересован, вот это класс от Herlihy & Shavit "Искусство многопроцессорных программирования" для нумерации нитей:
public class ThreadID {
private static volatile int nextID = 0;
private static class ThreadLocalID extends ThreadLocal<Integer> {
protected synchronized Integer initialValue() {
return nextID++;
}
}
private static ThreadLocalID threadID = new ThreadLocalID();
public static int get() {
return threadID.get();
}
public static void set(int index) {
threadID.set(index);
}
}
Вы можете позвонить
ThreadID.get();
, который будет автоматически увеличивать числа и всегда начинать с 1.