From 6ec79dd6ad5e5c8ff17ddf5f4fe92aba32e2b243 Mon Sep 17 00:00:00 2001 From: lsy <18332763730@163.com> Date: Sat, 25 Nov 2017 13:26:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BD=BF=E7=94=A8=E5=89=AF?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E5=A4=84=E7=90=86=E8=AF=B7=E6=B1=82=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/AsyncController.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 boot-starter/boot-starter-security/boot-starter-security-demo/src/main/java/com/micro/fast/security/demo/controller/AsyncController.java diff --git a/boot-starter/boot-starter-security/boot-starter-security-demo/src/main/java/com/micro/fast/security/demo/controller/AsyncController.java b/boot-starter/boot-starter-security/boot-starter-security-demo/src/main/java/com/micro/fast/security/demo/controller/AsyncController.java new file mode 100644 index 0000000..296cc70 --- /dev/null +++ b/boot-starter/boot-starter-security/boot-starter-security-demo/src/main/java/com/micro/fast/security/demo/controller/AsyncController.java @@ -0,0 +1,38 @@ +package com.micro.fast.security.demo.controller; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.concurrent.Callable; + + +@RestController +@RequestMapping("/logger") +public class AsyncController { + public static final Logger logger = LoggerFactory.getLogger(AsyncController.class); + + /** + * 使用Callable创建副线程来处理请求 + * tomcat中主线程的数量是有限的,使用副线程处理请求虽然请求消耗的总时间不变,但是主线程结束的快,能继续去处理其他请求能 + * 提高服务起的吞吐量 + * @return + */ + @GetMapping("/callable") + public Callable order(){ + logger.info("主线程开始"); + Callable result = new Callable() { + @Override + public String call() throws Exception { + logger.info("副线程开始了"); + Thread.sleep(1000); + logger.info("副线程结束了"); + return "success"; + } + }; + logger.info("主线程结束"); + return result; + } +}