В нашей системе мне было поручено создать страницу, которая будет отображать основные потоки нашей системы в реальном времени.
Чтобы воссоздать основной процесс, я планировал создать поток и дать ему спать в течениеминимум 5 секунд. Пока указанный поток находится в спящем режиме, я получу все активные потоки, проверим, существует ли созданный мною поток, и затем сохраню информацию о потоке в моей modelMap, которая будет передана в мой JSP для отображения.
Когда я попытался сделать это, тест, который мне удалось создать, ждал, пока Thread завершит спящий режим первым, а не то, что я хотел, чтобы он действовал.
Моя главная тема:
SampleThread1 sampleThread1 = new SampleThread1();
sampleThread1.setName("SAMPLE THREAD 1");
sampleThread1.run();
initializeMajorProcess ();
sampleThread1.interrupt();
SampleThread1:
class SampleThread1 extends Thread {
public void run () {
try {
System.out.println("-------- thread is starting");
Thread.sleep(5000);
System.out.println("-------- thread is done");
} catch (InterruptedException e) {
System.out.println(this.getName() + "Interrupted");
}
}
}
initializeMajorProcess:
private String initializeMajorProcess () {
Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
Set<Thread> nonDaemonThreads = new HashSet<Thread>();
for (Thread thread : threadSet) {
if (thread.isDaemon() == false && !thread.getName().startsWith("MyScheduler")) {
System.out.println(thread.getId());
System.out.println(thread.getName());
System.out.println(thread.isAlive());
nonDaemonThreads.add(thread);
}
}
return "frps/DeveloperDashboard";
}
Я всего лишь младший разработчик с однимлетний опыт работы. Я впервые обращаюсь с потоками и впервые спрашиваю о StackOverflow, поэтому, пожалуйста, не обращайте на меня внимания: ((
Я также хотел бы спросить, как мне отображать информацию о потоках в реальном времени? Я должен использовать WebSocket или мне нужно использовать AJAX?