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