SpringBoot2.x tarefas assíncronas

1. Inicie a classe que anotações usando a função de abertura @EnableAsync, digitalização automática

 

2. No método dos acima e @Async

 

Estou aqui para escrever uma classe de teste

@Component 
@Async 
classe pública AsyncTask { 
    task1 public void () lança InterruptedException { 
        longa começam = System.currentTimeMillis (); 
        Thread.sleep (1000); 
        longo final = System.currentTimeMillis (); 
        longo total = acabar - começar; 
        System.err.println ( "任务1耗时:" + total); 
    } 

    Task2 public void () lança InterruptedException { 
        longa começam = System.currentTimeMillis (); 
        Thread.sleep (2000); 
        longo final = System.currentTimeMillis (); 
        longo total = acabar - começar; 
        System.err.println ( "任务2耗时:" + total); 
    }
 
    Task3 public void () lança InterruptedException {
        longo começar = System.currentTimeMillis (); 
        Thread.sleep (3000); 
        longo final = System.currentTimeMillis (); 
        longo total = acabar - começar; 
        System.err.println ( "任务3耗时:" + total); 
    } 
}

 

Em seguida, adicione um controlador assíncrono chamada de método este método a tarefa

/ * 
*异步任务
* * / 
@GetMapping ( "async_total") 
AsyncTotal longo pública () lança InterruptedException { 
    longa começam = System.currentTimeMillis (); 
    asyncTask.task1 (); 
    asyncTask.task2 (); 
    asyncTask.task3 (); 
    longo final = System.currentTimeMillis (); 
    longa counttotal = end - começar; 
    voltar counttotal; 
}

Se a sincronização é onde precisamos gastar um mínimo de seis segundos, porque eu tenho três tarefas que esperar seis segundos juntos

Mas eu uso assíncrono Pergunto isso levou apenas 2 segundos

Publicado 10 artigos originais · ganhou elogios 0 · Visualizações 508

Acho que você gosta

Origin blog.csdn.net/DNCCCC/article/details/105033852
Recomendado
Clasificación