在我们的“文档处理 Agent”项目中,基础的问答功能(RAG)已经解决得很好。但随着用户需求升级,我们面临了新的挑战: 用户场景: “这是 2024 和 2025 年的两份经营数据报表,请对比 DAU 和营收的同比增长率,并生成一个 Excel 表格给我。另外,把总结报告 ...
前两天 Java Agent 生态迎来重大发布,Spring AI 发布 1.1.0 GA 正式版本,紧接着,Spring AI Alibaba 1.1 版本正式发布。1.1 版本是在总结 1.0 版本企业实践基础上发布的新版本,标志着构建企业级、生产就绪的 AI 智能体(Agent)应用进入了一个新的阶段。 提供构建 Agentic ...
大家好,我是小林。 又看到一家公司开奖了,那就是传音控股,估计好多同学都没听过这公司吧? 其实它是 “非洲手机之王”,还是中国民营企业 500 强,在非洲手机市场的占有率常年第一,差不多占了 40%-50% 的份额,在非洲那边老有名了。 我也给大家整理了 ...
HashMap是 Java中最常用的Map类型之一,它采用了哈希表的方式存储数据,具有快速的查找和插入速度。然而,它并不是线程安全的,如果多个线程同时对HashMap 进行读写操作,可能会导致数据不一致的问题。为了解决这个问题,Java提供了一个线程安全的Map 类型 ...
Java 7中的ConcurrentHashMap:使用了分段锁机制,存储结构为数组+链表,锁的粒度是基于段的,不支持动态扩容。Java 8中的 ...
2.为什么HashMap在多线程并发存在死循环的问题,JDK1.8中做了哪些优化? 详情参考 《我们一起进大厂》系列-HashMap老生常谈,HashMap的死循环HashMap为何从头插入改为尾插入 HashMap可以使用null作为key,不过建议还是尽量避免这样使用。HashMap以null作为key时,总是存储 ...
Java 8中ConcurrentHashMap的实现通过一些巧妙的设计和技巧,避开了自旋锁的局限,提供了更高的并发性能。 Java 7的ConcurrenHashMap的源码我建议大家都看看,那个版本的源码就是Java多线程编程的教科书。在Java 7的源码中,作者对悲观锁的使用非常谨慎,大多都转换为 ...
我在之前两讲介绍了Java集合框架的典型容器类,它们绝大部分都不是线程安全的,仅有的线程安全实现,比如Vector、Stack,在性能方面也远不尽如人意。幸好Java语言提供了并发包(java.util.concurrent),为高度并发需求提供了更加全面的工具支持。 今天我要问你的 ...
在《疫苗:Java HashMap的死循环》中,我们看到,java.util.HashMap并不能直接应用于多线程环境。对于多线程环境中应用HashMap,主要有以下几种选择: 使用线程安全的java.util.Hashtable作为替代。 使用java.util.Collections.synchronizedMap方法,将已有的HashMap对象包装为线程安全的 ...
在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在 ...