public interface AsyncTestService {
/**
- 这里将会在impl里标注为异步任务,在执行此方法的时候,会单独开启线程来执行
*/
void function1() throws InterruptedException;
void function2();
}
AsyncTestServiceImpl:
package com.async.service.impl;
import com.async.service.AsyncTestService;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.UUID;
@Service
public class AsyncTestServiceImpl implements AsyncTestService {
/**
- 这里进行标注为异步任务,在执行此方法的时候,会单独开启线程来执行
*/
@Async(“getExecutor”)
public void function1() throws InterruptedException {
System.out.println("f1 : " + Thread.currentThread().getName() + " " + UUID.randomUUID().toString());
// try {
// Thread.sleep(10000);
// System.out.println(“EEEE”);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
//故意等10秒,那么异步线程开起来,这样明显看到 2方法不用等1方法执行完再调用了
Thread.sleep(10000);
System.out.println(“EEEE”);
}
@Async(“getExecutor”)
public void function2() {
System.out.println("f2 : " + Thread.currentThread().getName() + " " + UUID.randomUUID().toString());
try {
Thread.sleep(100);
System.out.println(“aaaa”);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
代码不走读了,但是必须得提下注解:
@Async 这个是告诉全世界,这里! 只要被调用,就是会开启一个异步线程。
至于后面加上(“getExecutor”),是为了指定读取自己写的配置信息例如线程名称那些。
最后是TestController:
package com.async.test;
import com.async.service.AsyncTestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@Autowired
AsyncTestService asyncTestService;
@GetMapping(“/test”)
public void test() throws InterruptedException {
// for (int i = 0; i < 10; i++) {
// asyncTestService.function1(); // 执行异步任务
// asyncTestService.function2();
// }
asyncTestService.function1(); // 执行异步任务
asyncTestService.function2();
}
}
启动类没啥改变:
package com.async;
import org.springfr 需要zi料+ 绿色徽【vip1024b】
amework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class AsyncApplication {
总结
如果你选择了IT行业并坚定的走下去,这个方向肯定是没有一丝问题的,这是个高薪行业,但是高薪是凭自己的努力学习获取来的,这次我把P8大佬用过的一些学习笔记(pdf)都整理在本文中了
《Java中高级核心知识全面解析》
小米商场项目实战,别再担心面试没有实战项目:
如果你选择了IT行业并坚定的走下去,这个方向肯定是没有一丝问题的,这是个高薪行业,但是高薪是凭自己的努力学习获取来的,这次我把P8大佬用过的一些学习笔记(pdf)都整理在本文中了
《Java中高级核心知识全面解析》
[外链图片转存中…(img-rDlYFk4O-1710368919804)]
小米商场项目实战,别再担心面试没有实战项目:
[外链图片转存中…(img-hPessp4Q-1710368919805)]