У меня есть многопоточное приложение, и я назначаю уникальное имя для каждого потока через setName()
. Теперь я хочу, чтобы функциональность получала доступ к потокам напрямую с их соответствующим именем.Получить тему по имени
Somethings как следующая функция:
public Thread getThreadByName(String threadName) {
Thread __tmp = null;
Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
Thread[] threadArray = threadSet.toArray(new Thread[threadSet.size()]);
for (int i = 0; i < threadArray.length; i++) {
if (threadArray[i].getName().equals(threadName))
__tmp = threadArray[i];
}
return __tmp;
}
Вышеуказанные функции проверяют все запущенные потоки, а затем возвращает нужный поток из множества запущенных потоков. Возможно, мой желаемый поток прерывается, тогда вышеуказанная функция не будет работать. Любые идеи о том, как включить эту функциональность?
Как нити создается? –
Просто сохраните нужные вам потоки в 'HashMap' по их именам. –
millimoose
@JohnVint Темы создаются в другом классе, поэтому я не могу получить к ним доступ напрямую. – NullPointer