1.MyTask
public abstract class MyTask<T> {
protected TaskListner<T> listner;
public abstract void run();
public void setListner(TaskListner<T> listner) {
this.listner = listner;
}
public TaskListner<T> getlistner() {
return listner;
}
}
2.TaskListner
public interface TaskListner<T> {
void rusult(T result) throws Exception;
}
3.ThreadUtil
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ThreadUtil {
private ThreadUtil() {
}
private final static ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
public final static void execute(final MyTask task, int i, TimeUnit unit) {
scheduledThreadPool.schedule(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
task.run();
}
}, i, unit);
}
}
4.使用示例:
//新建任务
MyTask task = new MyTask<String>() {
@Override
public void run() {
// TODO Auto-generated method stub
//----------任务代码---------
for(int i=0;i<10000;i++) {
System.out.println(grtUtil.createWallet());
}
//----------任务代码---------
if(this.listner != null) {
try {
listner.rusult("执行成功");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
TaskListner<String> listner = new TaskListner<String>() {
@Override
public void rusult(String result) throws Exception {
// TODO Auto-generated method stub
System.out.println("任务回执:"+result);
}
};
task.setListner(listner);
//执行任务
//task : 任务
//i : 延迟
//unit :时间单位
ThreadUtil.execute(task,1, TimeUnit.MICROSECONDS);