В Eclipse Debug View есть опция «Показать системные потоки»:
Если эта функция включена, Eclipse отображает количество потоков, которые обычно скрыты от списка тем. Все они находятся в группе потоков system
:
У меня вопрос, есть ли официальное понятие "системный поток" в Java Или это просто Eclipse? Я некоторое время гуглял и не нашел упоминания о "Java системном потоке", так что я думаю, что это терминология, созданная Eclipse?
Если это не так, то это Java Понятие, подобное потоку демона, как мне узнать, является ли данный поток "системным"?
Еще одна вещь, которую я не понимаю, - это если я создаю новую группу потоков Foo
под root system
группа потоков, а затем создайте новый поток MyThread
в группе Foo
public class Test2 {
public static void main(String[] args) {
ThreadGroup threadGroup = new ThreadGroup(getRootThreadGroup(), "Foo");
new Thread(threadGroup, () -> {
System.out.println("hello");
}, "MyThread").start();
}
// This will return the root "system" thread group
public static ThreadGroup getRootThreadGroup () {
ThreadGroup currentGroup = Thread.currentThread().getThreadGroup();
while (currentGroup != null) {
ThreadGroup parent = currentGroup.getParent();
if (parent == null) {
return currentGroup;
}
else {
currentGroup = parent;
}
}
return null;
}
}
, тогда Eclipse покажет, что MyThread
является системным потоком:
Так что в этом случае Eclipse ошибочно принимает мой поток за «системный поток», или это реальный способ создания «системного потока», что бы это ни было?