当前位置: 首页 > news >正文

给网站权限b2b平台有哪几个

给网站权限,b2b平台有哪几个,做网站要是要求吗,金融贷款和网站建设哪个赚钱一、介绍 1、介绍 二、原理 三、集成与使用 1、集成方法 &#xff08;1&#xff09;开启 使用以下注解开启 EnableAsync &#xff08;2&#xff09;使用 在需要异步处理的方法上加上 Async 2、返回值 Async注解的方法返回值只能为void或者Future<T>。 &…

一、介绍

1、介绍

二、原理

三、集成与使用

1、集成方法

(1)开启

使用以下注解开启

@EnableAsync

(2)使用

在需要异步处理的方法上加上

@Async
2、返回值
@Async注解的方法返回值只能为void或者Future<T>。

(1)无返回值

(2)有返回值

使用AsyncResult包装下得到Future对象返回;调用处使用get方法获取。

3、demo
(1)初始化线程池

如我初始化了两个,分别在user模块、order模块使用

package com.demo.thread.constant;public class ThreadPoolConstant {public static final String USER_POOL = "userPool";public static final String ORDER_POOL = "orderPool";
}
package com.demo.thread.config;import com.demo.thread.constant.ThreadPoolConstant;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;@Configuration
@EnableAsync
public class ThreadPoolTaskExecutorConfig {private static int CORE_POOL_SIZE = 5;private static int MAX_POOL_SIZE = 10;@Bean(name= ThreadPoolConstant.USER_POOL)public ThreadPoolTaskExecutor userTaskExecutor(){ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor();//线程池维护线程的最少数量poolTaskExecutor.setCorePoolSize(CORE_POOL_SIZE);//线程池维护线程的最大数量poolTaskExecutor.setMaxPoolSize(MAX_POOL_SIZE);//线程池所使用的缓冲队列poolTaskExecutor.setQueueCapacity(200);//线程池维护线程所允许的空闲时间poolTaskExecutor.setKeepAliveSeconds(30000);poolTaskExecutor.setWaitForTasksToCompleteOnShutdown(true);poolTaskExecutor.setBeanName(ThreadPoolConstant.USER_POOL);return poolTaskExecutor;}@Bean(name= ThreadPoolConstant.ORDER_POOL)public ThreadPoolTaskExecutor orderTaskExecutor(){ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor();//线程池维护线程的最少数量poolTaskExecutor.setCorePoolSize(CORE_POOL_SIZE);//线程池维护线程的最大数量poolTaskExecutor.setMaxPoolSize(MAX_POOL_SIZE);//线程池所使用的缓冲队列poolTaskExecutor.setQueueCapacity(200);//线程池维护线程所允许的空闲时间poolTaskExecutor.setKeepAliveSeconds(30000);poolTaskExecutor.setWaitForTasksToCompleteOnShutdown(true);poolTaskExecutor.setBeanName(ThreadPoolConstant.ORDER_POOL);return poolTaskExecutor;}
}
(2)service
package com.demo.thread.service.impl;import com.demo.thread.constant.ThreadPoolConstant;
import com.demo.thread.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.AsyncResult;
import org.springframework.stereotype.Service;import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Future;@Service("userService")
@Slf4j
public class UserServiceImpl implements UserService {@Override@Async(ThreadPoolConstant.USER_POOL)public void create()  {log.info("user create开始...");try {Thread.sleep(3000);} catch (InterruptedException e) {throw new RuntimeException(e);}log.info("user create结束...");}@Override@Async(ThreadPoolConstant.USER_POOL)public Future<List<String>> query()  {log.info("user query 开始...");try {Thread.sleep(3000);} catch (InterruptedException e) {throw new RuntimeException(e);}List<String> userIds = new ArrayList<>();userIds.add("zs");userIds.add("ls");Future<List<String>> users = new AsyncResult(userIds);log.info("user query 结束...");return users;}
}
(3)controller
package com.demo.thread.controller;import com.demo.thread.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;@RestController
@RequestMapping("/test")
@Slf4j
public class UserController {@Autowiredprivate UserService userService;@RequestMapping("/create")public void create() {log.info("测试create开始");userService.create();log.info("测试create结束");}@RequestMapping("/query")public void query() {log.info("测试query开始");Future<List<String>> users = userService.query();log.info("调用query结束");try {List<String> userIds = users.get();log.info("query结果为:{}",userIds);} catch (InterruptedException e) {throw new RuntimeException(e);} catch (ExecutionException e) {throw new RuntimeException(e);}log.info("测试query结束");}
}
(4)启动类
package com.demo.thread;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class ThreadApplicationStart {public static void main(String[] args) {SpringApplication.run(ThreadApplicationStart.class, args);}
}
(5)测试

无返回值:访问localhost:8080/test/create控制台输出:

有返回值:访问localhost:8080/test/query控制台输出:可以看到feture取结果会阻塞主线程,其他则按执行顺序打印

http://www.hkea.cn/news/569023/

相关文章:

  • 网页界面设计首页seo快速优化软件网站
  • 和凡科网类似的网站四川省人民政府
  • 北辰网站建设如何推广引流
  • ps网页模板网站seo外包公司
  • 常平镇仿做网站快速排名刷
  • 青浦建设网站公司app推广代理加盟
  • wordpress 在线pdf优化关键词的正确方法
  • 网站悬浮窗口网站关键词全国各地的排名情况
  • 做网站得叫什么优化关键词排名
  • 丰县住房与城乡建设部网站太原网站制作优化seo公司
  • 微信如何做微商城网站建设手机网站智能建站
  • 网站尾部分页数字怎么做推广app大全
  • 建筑设计软件有哪些优化网站建设
  • 网站开发 word文件预览医疗器械龙头股
  • 电子商务网站建设花费南宁百度seo排名价格
  • 做公司网站要注意哪些问题真正免费建站网站
  • 在线服务器代理杭州seo网络公司
  • wordpress邮件订阅seo技术外包
  • 深圳营销网站建站公司搜索引擎关键词的工具
  • 做网站如何网站考虑优化游戏推广员是诈骗吗
  • 公众号做视频网站吗关键词排名怎么做上首页
  • 重庆做网站价格优化软件下载
  • 如何做网站镜像今日最火的新闻
  • 水果网站开发所需的成本市场营销实际案例
  • 无锡市新吴区住房和建设交通局网站西安百度关键词包年
  • 网站平台方案设计seo上首页
  • 郑州做网站的联系方式搜狗友链交换
  • 一般建设一个网站多少钱怎么接广告赚钱
  • 计算机专业网站开发方向销售推广方案
  • 上海网站建设公司排名西安百度公司