ExecutorService executorService = Executors.newCachedThreadPool(); Future future = executorService.submit(new ThreadCall(itemQueue, clcQueue, type, itemQueuePatService, doctor1)); ApiResult apiResult = new ApiResult(); //获取线程返回值 if(!future.isDone()) { apiResult = (ApiResult)future.get(); }
public class ThreadCall implements Callable{ private ItemQueue itemQueue; private ClcQueue clcQueue; private Integer type; private HisDoctor doctor; private ItemQueuePatService itemQueuePatService; private Logger logger = LoggerFactory.getLogger(ThreadCall.class); public ThreadCall(ItemQueue itemQueue, ClcQueue clcQueue, Integer type, ItemQueuePatService itemQueuePatService, HisDoctor doctor) { this.itemQueuePatService =itemQueuePatService; this.itemQueue = itemQueue; this.clcQueue = clcQueue; this.type = type; this.doctor = doctor; } @Override public ApiResult call() { logger.info("-----【进入叫号线程】"); ApiResult apiResult = itemQueuePatService.operateToCallOnce(itemQueue, clcQueue, type, doctor); logger.info("-----【叫号线程结束】"); return apiResult; } }