开一个线程异步执行

在开发中,很多时候会异步处理一些业务需求,在不影响主业务的情况下,还需要做一些附加的耗时长的操作,可以在主代码中

开一个线程(主要有三种线程):

1.new ARunnable类,实现Runnable接口,复写run方法:

public class ARunnable implements Runnable {
    private ARunnableBuss aRunnableBuss;
    private Dto dto;

    public ARunnable (ARunnableBuss aRunnableBuss, Dto dto) {
        this.aRunnableBuss= aRunnableBuss;
        this.dto= dto;
    }//有参构造

    /**
     * 执行run方法
     */
    @Override
    public void run() {
        aRunnableBuss.run1(dto);//实际处理业务的方法
    }
}

2.new ARunnableBuss实际处理业务的类,带一个run1方法:

@Service
@Slf4j
public class ARunnableBuss {
    @Autowired
    private EmailSendMsgHandle emailSendMsgHandle;  //可以注入service
public void run1(InOrderEntryDto inOrderEntryDto) { //TODO...发邮件或者其他耗时操作 } }

3.实际主业务中使用:

Runnable runn = new ARunnable(aRunnableBuss, dto);
//将Runnable接口的子类对象作为参数传递给Thread类的构造函数
Thread thread = new Thread(runn);
//开启线程处理业务
thread.start();

  

 

上一篇:Java中PO、DO、TO、DTO、 VO、 BO、POJO 、DAO的概念


下一篇:使用aop处理日志