刷新
每个线程只管自己的变量,性能却不如单线程?问题出在缓存行

博主头像 伪共享(False Sharing)是多线程编程中一个很容易被忽略,但在高并发场景下又可能非常致命的性能问题。 它最迷惑人的地方在于:从业务代码上看,多个线程并没有修改同一个变量,甚至每个线程都只操作属于自己的那份数据,理论上不应该发生竞争;但从 CPU 的视角看,这些变量可能刚好落在同一个缓存行里 ...

鹅厂面试官问我:“为什么要用 Spring AI,而不是直接调用大模型?”,我笑了说:因为 Spring AI 解决的不是大模型能不能调用的问题。。

博主头像 大家好,我是R哥。 为什么要用 Spring AI,而不是直接调用大模型? 因为 Spring AI 解决的不是「大模型能不能调用」的问题,而是企业级 AI 应用里的统一抽象、模型切换、上下文管理、RAG、工具调用、流式输出、可观测性这些工程化问题。 那 Spring AI 是什么? Spring ...

select、poll、epoll 到底有什么区别?一文讲透 I/O 多路复用

博主头像 概述 同步与异步 同步: 同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回。此时需要调用者询问处理结果 异步: 异步就是发起一个调用后,立刻得到被调用者的回应表示已接收到请求,但是被调用者并没有返回结果,此时调用者来询问处理结果,被调用者通常依靠事件,回调等机制来通知调用者其返回结果。 ...

9、IntelliJ IDEA 之断点调试

博主头像 9.1、断点调试的作用 代码运行出现错误时,需要排查定位问题所在。 当代码比较简单,或许能直接看出来;但当代码过于复杂的时候,就需要通过断点调试来查找错误。 9.2、断点调试步骤 9.2.1、添加断点 如上图所示,在代码左侧点击一下,即可添加一个断点(再点击即可取消),本示例添加了三个断点。 9.2 ...

网页为什么越来越快?一文看懂 HTTP 的三次进化

博主头像 HTTP/1.1的改进和不足 HTTP/1.1 相比 HTTP/1.0 性能上的改进: 使用长连接的方式改善了 HTTP/1.0 短连接造成的性能开销。 支持管道(pipeline)网络传输,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间 HTTP/1.1的不足 ...

keycloak~aud受众字段的作用及如何生成

博主头像 在OAuth 2.0框架中,aud(受众)声明的核心功能是明确指定令牌的合法接收者,它是一个关键的安全验证机制。 ⚙️ 核心原则:标识与验证 具体来说,这个机制遵循以下原则: 标识:授权服务器在签发令牌时,会将目标API的唯一标识写入aud字段,明确告知客户端“这个令牌是发给谁用的”。 验证:API ...

别只会背 200 和 404:HTTP 核心知识完整梳理

博主头像 HTTP 基本概念 HTTP 是什么? HTTP 是超文本传输协议,也就是HyperText Transfer Protocol。 「协议」:HTTP 是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范(两个以上的参与者),以及相关的各种控制和错误处理方式(行 ...

8、IntelliJ IDEA 之快捷键

博主头像 8.1、常用快捷键 8.1.1、编码 说明 快捷键 智能提示 alt + enter 使用xx块环绕-surround with ctrl + alt + t 调出生成 getter/setter 构造器等结构 alt + insert 复制指定行的代码 ctrl + d 删除指定行的代码 ctrl ...

MonkeyCode实现OAuth2认证:从零到生产级SSO

博主头像 自己写登录系统是危险的。OAuth2 + JWT是最成熟的组合,MonkeyCode帮你把安全风险降到最低。 为什么不用Session+Cookie了? 传统Session方案的痛点: 问题 表现 扩展性差 Session存在单台服务器内存,多实例无法共享 CSRF风险 Cookie自动携带,容易被 ...

天塌了!Spring AI 2.0 宣布移除智谱!!

博主头像 大家好,我是R哥。 最近,我在适配我的《Spring AI 开发实战课》到 Spring AI 2.0 版本,在适配的过程中发现「智谱」相关的模型类编译异常了: 于是我翻了下 Spring AI 2.0 的版本发布记录,发现 Spring AI 2.0 彻底移除智谱了。。 最早在 Spring AI ...

Spring AI 1.1.7 发布,修复 3 个问题!

博主头像 大家好,我是R哥。 上一个《Spring AI 1.1.6 发布,又一项重大变更!!》版本刚发布半月,现在又迎来了 Spring AI 1.1.7 版本的发布。 AI 更新太快了,活到老学到老的节奏。。 除了 Spring AI 1.1.7,2.0.0 也来到了 M7 版本了,预计很快就要正式 GA ...

java基础-多线程2

博主头像 多线程 重点: 1.会用wait和notify两个方法 2.会使用Lock锁对象 3.会利用Callable接口实现多线程 4.会使用线程池完成多线程 第一章.等待唤醒机制 1.等待唤醒案例分析(线程之间的通信) 要求:一个线程生产,一个线程消费,不能连续生产,不能连续消费 -> 等待唤醒机制(生产 ...

7、IntelliJ IDEA 之代码模板

博主头像 7.1、查看预设模板 7.1.1、后缀补全模板 如上图所示,可以查看具体的后缀补全模板。 7.1.2、实时模板 如上图所示,可以查看具体的实时模板。 7.2、常用模板 7.2.1、函数 // main:main 函数 public static void main(String[] args) { ...

两小时入门Sentinel

博主头像 前言 Sentinel是阿里巴巴开源的一款微服务流量控制组件。官网地址:https://sentinelguard.io/zh-cn/index.html,官方wiki: Sentinel 具有以下特征: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒 ...

dubbo服务调用源码

博主头像 调用过程 dubbo的服务调用方是在xml配置了类似于 <dubbo:reference interface="com.jwfy.dubbo.product.ProductService" id="productService" />的配置,意味着后续在spring中通过 getBean('prod ...

2、BellMan-Ford算法

博主头像 一、BellMan-Ford算法简介 与Dijkstra算法一样,BellMan-Ford算法也是用于求有向图和无向图的单源最短路径的算法。但是,BellMan-Ford算法与Dijkstra算法的不同处,有以下2点: ①、BellMan-Ford算法可以用于边的权值为负数的有向图中,但该图中不能存 ...

<1···345···25>