public static ThreadPoolExecutor poolExecutor = new ThreadPoolExecutor(5, 50, 300, TimeUnit.SECONDS, new ArrayBlockingQueue<>(50))
```
@PostMapping("/pool/test")
@ApiOperation("线程池测试")
public Result poolTest(@RequestBody List<String> requests) {
List<Long> re = new ArrayList<>()
List<Future<Long>> a = new ArrayList<>()
for (String request : requests) {
Future<Long> submit = poolExecutor.submit(new Callable<Long>() {
@Override
public Long call() throws Exception {
System.out.println("线程池测试" + request)
return System.currentTimeMillis()
}
})
a.add(submit)
}
a.stream().forEach(x -> {
try {
Long aLong = x.get()
} catch (InterruptedException e) {
throw new RuntimeException(e)
} catch (ExecutionException e) {
throw new RuntimeException(e)
}
})
return Result.success(re)
}
```
// 业务规则
/* Supplier<KeyValue<Boolean>> supplier = new Supplier<KeyValue<Boolean>>() {
@Override
public KeyValue<Boolean> get() {
boolean re = planeOrderFactorService.conditionFlightNoA(request, result)
return new KeyValue("conditionFlightNoA", re)
}
}
/* Map<String, Boolean> collect = Stream.<Supplier<KeyValue<Boolean>>>of(
() -> new KeyValue<>("conditionAirwaysFk", planeOrderFactorService.conditionAirwaysFk(request))
, () -> new KeyValue<>("conditionFlightNoA", planeOrderFactorService.conditionFlightNoA(request, result))
, () -> new KeyValue<>("conditionFlightNoB", planeOrderFactorService.conditionFlightNoB(request, result))
, () -> new KeyValue<>("conditionFlightNoC", planeOrderFactorService.conditionFlightNoB(request, result))
).parallel().map(Supplier::get).collect(Collectors.toMap(a -> a.getKey(), a -> a.getValue()))
Supplier<KeyValue<Boolean>> supplierAirwaysFk = () -> new KeyValue<>("conditionAirwaysFk", planeOrderFactorService.conditionAirwaysFk(request))
Supplier<KeyValue<Boolean>> supplierFlightNoA = () -> new KeyValue<>("conditionFlightNoA", planeOrderFactorService.conditionFlightNoA(request, result))
Supplier<KeyValue<Boolean>> supplierFlightNoB = () -> new KeyValue<>("conditionFlightNoB", planeOrderFactorService.conditionFlightNoB(request, result))
Supplier<KeyValue<Boolean>> supplierFlightNoC = () -> new KeyValue<>("conditionFlightNoC", planeOrderFactorService.conditionFlightNoC(request))
List<Supplier<KeyValue<Boolean>>> suppliers = new ArrayList<>()
suppliers.add(supplierAirwaysFk)
suppliers.add(supplierFlightNoA)
suppliers.add(supplierFlightNoB)
suppliers.add(supplierFlightNoC)
Map<String, Boolean> factorRe = suppliers.stream().parallel().map(Supplier::get).collect(Collectors.toMap(a -> a.getKey(), a -> a.getValue()))
```
```