摘要: 关于线程池的几个参数,很多人不是很清楚如何配置,他们之间是什么关系,我用代码来证明一下。 输出结果,观察关系: //任务数 a = 3 , 活跃线程数3 , 任务数 < 核心线程数。 //任务数 a = 4 , 活跃线程数4 , 任务数 < 核心线程数。 //任务数 a = 5 , 活跃线程数5 , 阅读全文
posted @ 2019-08-05 23:55 北溪 阅读(10811) 评论(0) 推荐(2) 编辑
摘要: 先说场景: 根据Redis官网介绍,单机版Redis的读写性能是12万/秒,批量处理可以达到70万/秒。不管是缓存或者是数据库,都有批量处理的功能。当我们的系统达到瓶颈的时候,我们考虑充分的压榨缓存和数据库的性能,应对更大的并发请求。适用于电商促销双十一,等特定高并发的场景,让系统可以支撑更高的并发 阅读全文
posted @ 2019-08-04 16:28 北溪 阅读(8815) 评论(3) 推荐(1) 编辑
摘要: ForkJoinPool 是jdk1.7 由Doug Lea 写的实现 递归调用任务拆分,合并,的线程池。 代码示例: 就是把任务拆分,交给线程池执行,再合并。与Future的获取返回值有点相似。只是对任务拆分做了抽象封装。 特点: 线程池 ThreadPoolExecutor 中只维护了一个队列。 阅读全文
posted @ 2019-08-04 01:16 北溪 阅读(3361) 评论(0) 推荐(0) 编辑
摘要: CountDownLatch 的使用场景:在主线程中开启多线程去并行执行任务,并且主线程需要等待所有子线程执行完毕后汇总返回结果。 我把源码中的英文注释全部删除,写上自己的注释。就剩下 70 行不到的代码,很简单了。 我用这个CountDownLatch来实现多线程执行任务,合并结果返回。 多线程并 阅读全文
posted @ 2019-08-03 22:14 北溪 阅读(682) 评论(0) 推荐(0) 编辑
摘要: 公司的需求,当前某个Excel导入功能,流程是:读取Excel数据,传入后台校验每一条数据,判断是否符合导入要求,返回给前端,导入预览展示。(前端等待响应,难点)。用户再点击导入按钮,进行异步导入(前端不等待,好做)。当前接口仅支持300条数据,现在要求我要支持3000条数据。 解决问题,思路是关键 阅读全文
posted @ 2019-08-02 23:25 北溪 阅读(1532) 评论(0) 推荐(0) 编辑
摘要: 功能描述: 先从缓存获取数据,如果缓存没有,就从数据库获取数据,并设置到缓存中,返回数据。 如果数据库中没有数据,需要设置一个缓存标记flagKey,防止暴击访问数据库,用缓存保护数据库。 当删除缓存key时,需要同时删除flagKey,保证数据库可被访问。 关于java泛型的知识点,这里就跳过了。 阅读全文
posted @ 2019-07-18 22:19 北溪 阅读(1175) 评论(0) 推荐(0) 编辑
摘要: 今天群里一位朋友抛出一个问题,需要用26个字母和10个数字,组成一个不重复的4位字符,来作为邀请码。既方便客户记忆,又能适应大量的用户。我就做了这个demo 用Redis把begin存储起来,每次用的时候放入方法,拿到邀请码,再自增1,设置回Redis。如此生成的邀请码最多是36*36*36*36= 阅读全文
posted @ 2019-07-07 22:07 北溪 阅读(2698) 评论(0) 推荐(0) 编辑
摘要: 简单的说,观察者模式,就类似于 广播站发送广播,和收音机的关系。多个收音机去收听同一个广播频道。 在实际的业务场景中,可以是这样的。创建订单成功后,发布事件。然后减库存。发送短信。调用微信。调用物流服务。等多个后续业务,都去监听同一个事件。 定义一个事件。 定义事件发布器 订单服务中,发布事件 发短 阅读全文
posted @ 2019-05-25 01:18 北溪 阅读(1310) 评论(0) 推荐(0) 编辑
摘要: 一般缓存与数据库的配合使用是这样的。 1.查询缓存中是否有数据。 2.缓存中无数据,查询数据库。 3.把数据库数据插入到缓存中。 其实我们发现 1,3 都是固定的套路,只有2 是真正的业务代码。我们可以把1,3 抽取出来,封装到一个自定义注解@myCache 上,通过给2方法加一个注解,实现代码的解 阅读全文
posted @ 2019-03-31 01:09 北溪 阅读(664) 评论(0) 推荐(0) 编辑
摘要: jdk1.8中新原子操作封装类LongAdder和jdk1.5的AtomicLong和synchronized的性能对比,直接上代码: 看看输出结果: jdk版本,作者及类名: 让我们来膜拜一下大神!2秒破亿次累加。翻倍的性能提升。 阅读全文
posted @ 2019-03-17 00:05 北溪 阅读(1261) 评论(0) 推荐(0) 编辑