提到java多线程不免有些人会头大。非常多概念都是非常理解可是真正到了实战的时候又是不知道怎样操作了。以下就结合实际项目来说说多线程的应用。
业务需求:
举例:批量插入10万条用户的相关活动优惠券
操作方式:使用固定10个大小的线程池来做。并每次处理1000条插入数据
线程类:注实现Callable<Integer>接口的是能得到返回值的线程类
public class InsertBatchThread implements Callable<Integer> { private int vdate; private int uid; private int count; private FundsInfoMapper fundsInfoMapper; private WmpsDayInterMapper wmpsDayInterMapper; private DataSource dataSource; public WmpsDayInterMapper getWmpsDayInterMapper() { if (null == wmpsDayInterMapper) { synchronized (this) { if (null == wmpsDayInterMapper) { wmpsDayInterMapper = SpringContextUtils.getBean("wmpsDayInterMapper"); } } } return wmpsDayInterMapper; } public FundsInfoMapper getProCommFundsInfoMapper() { if (null == fundsInfoMapper) { synchronized (this) {
spring成神之路第四十三篇:spring 中编程式事务怎么用的?
spring成神之路第四十二篇:玩转 JdbcTemplate
spring成神之路第四十一篇:@EnableCaching 集成 redis 缓存
spring成神之路第四十篇:缓存使用(@EnableCaching、@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig)
spring成神之路第三十八篇:@Scheduled & @EnableScheduling 定时器详解
spring成神之路第三十七篇:@EnableAsync & @Async 实现方法异步调用
spring成神之路第三十六篇:@EnableAspectJAutoProxy、@Aspect 中通知顺序详解
spring成神之路第三十五篇:@Aspect 中 5 中通知详解
spring成神之路第三十四篇:@Aspect 中@Pointcut 12 种用法