| package com.dy.common.util; | 
|   | 
|   | 
| @SuppressWarnings("unused") | 
| @Deprecated | 
| public abstract class ThreadJob { | 
|     protected Thread thread ; | 
|     protected boolean stop = false ; | 
|     public void stop(){ | 
|         this.stop = true ; | 
|     } | 
|     public boolean isStop(){ | 
|         return this.stop ; | 
|     } | 
|     public Thread getThread(){ | 
|         return this.thread ; | 
|     } | 
|     public void start(Callback callback) throws Exception { | 
|         this.thread = new Thread(() -> { | 
|             Exception[] exe = {null} ; | 
|             Object[] obj = {null} ; | 
|             try { | 
|                 obj[0] = execute() ; | 
|             }catch(Exception e){ | 
|                 e.printStackTrace(); | 
|                 exe[0] = e ; | 
|             }finally { | 
|                 if(callback != null){ | 
|                     if(exe[0] != null){ | 
|                         callback.exception(exe[0]); | 
|                     }else{ | 
|                         callback.call(obj[0]); | 
|                     } | 
|                 } | 
|             } | 
|         }); | 
|         thread.start() ; | 
|     } | 
|     public abstract Object execute() throws Exception ; | 
| } |