多线程编程
定长线程池,可控制线程最大并发数,超出的线程会在队列中等待
当我们在开发大屏的时候一个各大平会返回多个接口每个接口返回速度都不一样,会导致有的模块加载出来,有的模块未加载出来,用这种定长的线程方式,用一个接口返回,使全部模块统一加载,这样不仅能提高客户使用的感官,也可以大大提升前端开发效率
Executors的方式创建定长线程池(不推荐容易,容易内存溢出OOM)
package org.data.source.controller;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @auther :zby
* @date :2022/1/22 10:27
*/
@RestController
@RequestMapping("/test")
public class TestFixedThreadPoolController {
//创建线程池
ExecutorService exe = Executors.newFixedThreadPool(3);
@RequestMapping("/FixedThreadPool")
public String test(){
Future<String> s1 = exe.submit(new Callable<String>() {
@Override
public String call() throws Exception {
System.out.println("执行了1");
return "1";
}
})