This article brings you an introduction to springboot asynchronous calls (with code). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
Synchronization
The programs are executed sequentially in the order defined. Each line of the program must wait for the completion of the previous line of program before it can be executed. That is, when a function call is issued, before the result is obtained, the program The call does not return.
Asynchronous
When the program is executed sequentially, the subsequent program is executed without waiting for the asynchronous call statement to return the result. When an asynchronous procedure call is issued, the caller cannot get the result immediately.
Synchronization code
Service layer:
public void test() throws InterruptedException { Thread.sleep(2000); for (int i = 0; i < 1000; i++) { System.out.println("i = " + i); } }
Controller layer:
@GetMapping("test") public String test() { try { Thread.sleep(1000); System.out.println("主线程开始"); for (int j = 0; j < 100; j++) { System.out.println("j = " + j); } asyncService.test(); System.out.println("主线程结束"); return "async"; } catch (InterruptedException e) { e.printStackTrace(); return "fail"; } }
Request in browserhttp://localhost:8080/test
Console printing sequence:
Add the @Async
annotation to the test method of the Service layer, and at the same time add to the startup class in order for the asynchronous effect to take effect. @EnableAsync
Annotation
Service layer:
@Async public void test() throws InterruptedException { Thread.sleep(2000); for (int i = 0; i < 1000; i++) { System.out.println("i = " + i); } }
Controller remains unchanged, the startup class is added with @EnableAsync
:
@SpringBootApplication @EnableAsync public class AsyncApplication { public static void main(String[] args) { SpringApplication.run(AsyncApplication.class, args); } }
Request the printing sequence again as follows:
The above is the detailed content of Introduction to springboot asynchronous calls (with code). For more information, please follow other related articles on the PHP Chinese website!