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