开一个线程异步执行

Posted Rhythm黎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开一个线程异步执行相关的知识,希望对你有一定的参考价值。

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

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

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();

  

 

以上是关于开一个线程异步执行的主要内容,如果未能解决你的问题,请参考以下文章

异步概念

GCD的小结

进程线程同步异步

第十次总结 线程的异步和同步

今日艰难笔记-浏览器和Node下的eventloop

GCD总结