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