liurunyu
2024-12-12 db8bd443faa40789e3b82a75ccebeb744d55a5ae
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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 ;
}