gpt4 book ai didi

java - 关于将任务分配给守护线程

转载 作者:行者123 更新时间:2023-12-01 17:30:23 25 4
gpt4 key购买 nike

我有一个要求,我想创建一个包含 5 个线程的池,现在我想从这 5 个线程中创建 1 个线程作为守护进程线程,并且当该特定的 1 个线程成为守护进程时thread ,那么我想将一些任务分配给与任何服务相关的守护线程,这样当java程序退出时,我可以在窗口任务管理器中检查特定守护线程仍在执行该任务。,请告知如何实现这一点.. !因为我被困在这个问题上..!

下面是我的代码...

public class StoppingThread extends Thread //extend thread class 
{
// public synchronized void run()
//synchronized (this)

private volatile boolean Completed = false;


public void setCompleted() {
Completed = true;
}


public void run()
{
for(int i=0;i<20 && !Completed;++i) {
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(500);

System.out.print(i +"\n"+ "..");
} catch(Exception e) {
e.printStackTrace();
}
}
}

public static void main(String... a)
{
StoppingThread x = new StoppingThread();
StoppingThread y = new StoppingThread();
x.start();
x.setName("first");
x.setCompleted(); // Will complete as soon as the latest iteration finishes means bolean variable value is set to true
y.start();
y.setName("second");

}

}

现在我想让 Y 线程作为守护线程,然后想给它分配一些任务

最佳答案

使用ShutDownHook 。当应用程序结束时,您注册到钩子(Hook)中的线程将被调用。您可以在此线程运行方法中添加所有清理代码(DB、Stream、Context 等)或任何自定义功能。

Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() { // clean up code like closing streams,DB etc }
});

关于java - 关于将任务分配给守护线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11663848/

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