gpt4 book ai didi

java - 线程 hibernate 时我无法运行任务

转载 作者:行者123 更新时间:2023-11-30 09:59:36 25 4
gpt4 key购买 nike

在我们的系统中,我的任务是创建一个页面来实时显示我们系统的主要线程。

为了重新创建一个主要进程,我计划创建一个线程并让它 hibernate 至少 5 秒。当上述线程处于 hibernate 状态时,我将获取所有 Activity 线程,查看我创建的线程是否存在,然后将线程信息存储到我的 modelMap 中,该信息将传递到我的 JSP 上以显示它。

不过,当我尝试这样做时,我设法创建的测试首先等待线程完成 hibernate ,而不是我希望它执行的操作。

我的主线程:

        SampleThread1 sampleThread1 = new SampleThread1();
sampleThread1.setName("SAMPLE THREAD 1");
sampleThread1.run();

initializeMajorProcess ();

sampleThread1.interrupt();

示例线程 1:

    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");
}
}
}

初始化主要进程:

    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?

最佳答案

Thread.sleep(5000); hibernate 正在执行的主线程,即您的主类,因为您没有触发线程,而只是调用了 run 方法。

因此,宁可调用 sampleThread1.start(); 来代替 sampleThread1.run();

关于java - 线程 hibernate 时我无法运行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58725147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com