開一個線程異步執行


在開發中,很多時候會異步處理一些業務需求,在不影響主業務的情況下,還需要做一些附加的耗時長的操作,可以在主代碼中

開一個線程(主要有三種線程):

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

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM