我们在开发项目的时候,肯定会遇到一个情况。需要监控某个状态是否改变,又两种,一种是通过定时任务,一种通过守护线程。如果是定时任务,这会消耗大量的资源。当数据量比较多的时候,每次执行都会消耗资源。所以这种情况最好用守护线程。
守护线程就是启动的时候就启动了。项目结束则结束。
详细代码如下:
@Component public class StartThread implements DisposableBean,Runnable { private Thread thread; private volatile boolean someCondition = true; @Autowired private Timer timer; // dao 和service注入 @Autowired public StartThread(Timer timer) { this.timer = timer; this.thread = new Thread(this); this.thread.start(); System.out.print("线程启动"); } @Override public void run() { while (someCondition) { // 数据库调用 try { timer.queryOrderSuccess(); } catch (Exception e) { e.printStackTrace(); } } } @Override public void destroy() throws Exception { someCondition = false; } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)