
java技术专栏
文章平均质量分 66
LeoGoGoGoo
java程序猿
展开
-
工作纪实_64-CompletableFuture的forkJoin思考
是 Java 8 引入的用于异步编程的工具,它利用回调机制来处理异步操作的结果,而非传统的阻塞等待。它借助或者自定义线程池来执行异步任务;可以充分利用多核CPU的优势,把一个任务拆分成多个小任务,把多个小任务放到多个CPU上并行执行,当多个小任务执行完毕后,再将其执行结果合并起来。它也是Future实现类,则通过多线程链式编程的方法;它是一个更加强大的异步编程工具,支持流水线执行任务,异常处理和结果合并。原创 2025-04-20 14:31:53 · 412 阅读 · 0 评论 -
工作纪实61-关于线程池队列选择的考究
多线程原创 2025-02-19 00:39:32 · 840 阅读 · 0 评论 -
【转载】图解JDK7中的HashMap闭环和丢失问题
最近在复习准备面试,发现对于HashMap的1.7版本下头插法的问题,转载一篇优秀的文章关于HashMap的线程安全问题,网上资料很多。对于1.7版本的闭环问题,看了很多网上的资料一直搞不懂,今天又琢磨了一下,终于明白了,用自己看得懂的方式记录下。转载 2025-02-10 23:37:29 · 89 阅读 · 0 评论 -
浅谈职业生涯接触到的服务架构
从2016年入行开始,伴随着前期几年的的项目和工作变动,陆续的接触到一些服务架构,包括现在的微服务架构;因为在现有的公司这两年接触的Service Mesh比较多,确切来说我一共在两个团队分别实践和使用了两套框架,虽然对现有的架构脉络梳理清楚(庞大且黑盒),引发了我对之前的架构认知的思考,想着既然打算年后换工作,先整理一下自己对服务架构这块浅显的理解,也欢迎大家指教真要动笔才发现对服务架构理解真的很浅,只能持续的阅读和汲取一些优秀博主的精华,加之自己的理解,产出这一篇文章;原创 2024-10-02 11:36:25 · 1325 阅读 · 0 评论 -
工作纪实57-SublimeText正则匹配
有一堆错误数据,需要统计不同格式的错误数;比如:local=4000_7999。原创 2024-09-09 18:33:47 · 246 阅读 · 0 评论 -
工作纪实56-ES搜索串一致性
最近接收到了一个需求,一个用户有一组数据,比如字符串:abcdefg,如果新增的数据是abdcdfge,则视为是同一条数据,可以理解为即使顺序不同,但是实际上也是唯一串;原创 2024-08-22 10:15:39 · 541 阅读 · 0 评论 -
工作纪实55-数组取笛卡尔积
比如:arr1=[1,2], arr2=[3,4,5]⇒ result = [1,3],[1,4],[1,5],[2,3],[2,4],[2,5]手上有个需求,需要对历史数据清洗,有一段场景是有N个数组,分别要对每个数组做交叉取一个值,行成笛卡尔积。搞定,使用三次for循环也是没办法;各位是否有其他的好办法,欢迎留言。原创 2024-08-19 19:19:45 · 162 阅读 · 0 评论 -
3、加密算法-AES和RSA
它是一个唯一对应一个消息或文本的固定长度的值,它由一个单项Hash函数对消息进行计算而产出;不定长的数据===》数字摘要算法(Hash)====>定长的数据不用纠结非对称加密的公私秘钥在前端or后台生成,关键是看场景和主导方RSA拿来做签名是:私钥加密,公钥解密RSA拿来做数据传输加密是:公钥加密,私钥解密jwt的token案例在了解RSA的逻辑之后,会变得非常简单。原创 2024-07-02 10:11:26 · 2045 阅读 · 0 评论 -
工作纪实51-手撸AB实验分流策略
前几天写了一篇关于哈希算法的文章,起源就是在构思AB实验平台的时候,用到了哈希,所以对其做了深入的了解AB实验平台是一般互联网做策略、样式实验会用到的一个系统,一般开启某个实验之后,需要对线上流量进行分流:客户端->实验平台->策略平台->应用服务,大概是这个链路。原创 2024-06-28 18:02:10 · 5247 阅读 · 2 评论 -
2、Hash算法-自我解读
哈希算法和一致性哈希,不是一回事儿TreeMap 的 ceilingEntry 方法的作用是在 TreeMap 中找到大于或等于指定键值的最小键值对,使用它可以模拟哈希环如果构建了虚拟节点,其实投射到哈希环上的哈希值,都是虚拟节点的哈希值,只不过每个虚拟节点的指向性是一个真实的Node机器,但是这样不妨碍它确实是让数据分布变得更均匀虚拟节点个数挂载的越多,数据分布越均衡,大家可以试一下改一下值,我代码里面设置的是3。原创 2024-06-28 02:21:31 · 1206 阅读 · 0 评论 -
1、加密算法-MD5随机盐
MD5消息摘要算法,属Hash算法一类。MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要(32位的数字字母混合码)。原创 2024-06-27 12:17:57 · 1237 阅读 · 0 评论 -
工作纪实49-集合业务数据合并
最近在做推荐相关的一些接口,核心处理流程:prepare=>process=>post;使用接口编程但是在prepare阶段往往存在很多的信息拼接的过程,而我想让整个外部的处理结构平顺,且不想让后续的同事掺杂私活;因此有了这个博客;再次说明一下我的场景:1.prepre阶段需要从两个数据源获取数据,都是Video数据,但是有不同的组成部分,拼接起来就是完整的Video,且都是多线程2.在process阶段必须要拿到完整的数据。原创 2024-05-22 10:49:28 · 336 阅读 · 0 评论 -
工作纪实47-关于线程使用的几点思考
在某些个人认为不是瓶颈的中间件使用比如redis的mget或者pipelineGet都偶尔超过10ms甚至30ms;最近线上存在一些cpu的锯齿情况,类似于推荐项目就一个核心接口,业务逻辑和计算链路很长;原创 2024-03-29 15:55:41 · 286 阅读 · 0 评论 -
工作纪实45-记一段多线程批处理的代码
多线程、批处理原创 2024-02-29 13:49:38 · 152 阅读 · 0 评论 -
工作纪实42-内存泄漏(线上问题大乱斗)
还没找到原因,监控里面发现实例的内存使用率每天增加5%,这两天排查一下,哈哈哈。原创 2024-01-02 14:20:06 · 383 阅读 · 0 评论 -
工作纪实41-多线程写了一段还不错的代码
最近换的部门,对接口性能要求非常高,单台机器的qps高峰大概在300左右,导致我非常谨慎,各种catch和兜底。遇见个场景,2个线程处理任务,必须都在10ms内返回(一共10ms),如果返回不了,就不处理;原创 2023-12-29 17:50:56 · 406 阅读 · 0 评论 -
CAS全面解读
CAS自旋锁悲观者与乐观者的做事方式完全不一样,悲观者的人生观是一件事情我必须要百分之百完全控制才会去做,否则就认为这件事情一定会出问题;而乐观者的人生观则相反,凡事不管最终结果如何,它会先尝试去做,大不了最后不成功。这就是悲观锁与乐观锁的区别,悲观锁会把整个对象加锁占为自有后才去做操作,乐观锁不获取锁直接做操作,然后通过一定检测手段决定是否更新数据。底层原理乐观锁的核心算法便是CAS[Compare And Swap],它是借助C来调用CPU底层指令实现的,基于硬件实现,不需要进入内核,不需要原创 2020-12-29 11:20:26 · 279 阅读 · 0 评论 -
CAS无锁自旋解读
目录Volatile全面解读一、相关概念JMM同步规则1. 线程解锁前,必须把共享变量的值刷新回主内存2. 线程加锁前,必须读取主内存的最新值到自己的工作内存3. 加锁解锁是同一把锁二、`volatile`作用2.1 保证可见性2.2 不保证原子性2.3 禁止指令重排示例1示例2三、演示代码Volatile全面解读volatile是Java虚拟机提供的轻量级的同步机制,可以理解是是乞丐版的synchorized一、相关概念JMMjava memory model本身是一种抽象的概念并不真实存在,它原创 2020-12-27 22:26:24 · 279 阅读 · 0 评论 -
Java、Spring中的SPI机制
简介SPI的全程为Service Provider Interface, 是java提供的一套用来被第三方实现或者扩展的API,它可以用来启用空间扩展和替换组件整体机制如下图: SPI实际上就是基于接口的编程+策略模式+配置文件组合实现的动态加载机制系统设计的各个抽象,往往有很多不同的实现方案,在面向对象的设计里,一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可插拔原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能够在不同程序里动原创 2020-05-18 16:14:09 · 637 阅读 · 0 评论 -
ThreadLocal浅析
参考资料:http://benjaminwhx.com/2018/04/28/【细谈Java并发】谈谈ThreadLocal/https://blog.youkuaiyun.com/qq_33663983/article/details/783496411.关于ThreadLocal前言ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用。但是如果滥用 Th...原创 2019-04-30 11:44:13 · 175 阅读 · 0 评论