自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 收藏
  • 关注

原创 StandardThreadExecutor源码解读与使用(tomcat的线程池实现类)

StandardThreadExecutor 是 Apache Tomcat 中的一个线程池实现类,是 Tomcat 生命周期中的池化线程资源的封装。StandardThreadExecutor是为了更好地适应Tomcat容器中HTTP请求的处理而设计的。通过优先创建非核心线程来执行任务,避免了任务在等待队列中长时间积压,从而提升了服务器的响应速度。

2024-11-02 17:37:20 929 1

原创 ReentrantLock(可重入锁)源码解读与使用

ReentrantLock是一种独占式的可重入锁,位于JUC包下,是Lock接口的默认实现类。有三个特性:支持可重入,支持公平与非公平特性,提供堵塞锁和非阻塞锁两种获取方法(lock和trylock)其中内部锁的竞争是基于AQS实现的,当某一线程获取锁后,将state值+1,并记录下当前持有锁的线程,再有线程来获取锁时,判断这个线程与持有锁的线程是否是同一个线程,如果是,将state值再+1,这样就实现了锁的可重入。当线程释放锁时,将state值-1,当state值减为0时,表示当前线程彻底释放了锁,唤

2024-04-25 20:21:31 8833 52

原创 CyclicBarrier(循环屏障)源码解读与使用

CyclicBarrier可以让一组线程互相等待,直到最后一个线程也准备就绪后,它们才能继续运行。就好比几个朋友约好一起吃晚餐,必须等到所有人到齐后才能入座就餐。CyclicBarrier实现了这种"集体出发"的功能,每次所有线程就位后,它们可以执行一个预先指定的任务,然后继续向前推进。有趣的是,CyclicBarrier与CountDownLatch不同,它可以重复使用。这也从侧面体现了两者在设计理念上的差异。借鉴了AQS的精髓,CyclicBarrier内部通过ReentrantLock和Con

2024-04-23 22:00:48 7942 73

原创 CountDownLatch(倒计时器)源码解读与使用

在很多的面经中都看到过提问 CountDownLatch 的问题,正好我们最近也在梳理学习AQS(抽象队列同步器)、CAS操作等知识,而 CountDownLatch 又是JUC包下一个比较常见的同步工具类,我们今天就继续来学一下这个同步工具类!CountDownLatch 是一个多线程同步辅助类,它允许一个或多个线程等待一系列操作在其他线程中完成。这个机制类似于一场赛跑,选手们在起跑线准备,等待发令枪响后才能开始比赛。

2024-04-22 21:24:43 8169 58

原创 CAS机制(Compare And Swap)源码解读与三大问题

CAS(Compare And Swap)作为一种无锁编程技术,被广泛应用于Java的并发编程中。它通过利用CPU指令在操作数据时先比较内存值是否发生变化,如未变化则更新,否则重试循环直到成功为止,从而实现非阻塞的原子操作。CAS操作的优势在于避免了传统悲观锁导致的线程阻塞和切换开销,适用于读操作远多于写操作的应用场景。但它也存在着经典的ABA问题、无法保证多个共享变量的原子性以及在高并发写操作时自旋会导致CPU时钟周期浪费等缺陷。在JDK1.5之后,通过版本号机制来解决了ABA问题。对于长时间自旋

2024-04-21 20:26:05 8999 62

原创 利用AQS(AbstractQueuedSynchronizer)实现一个线程同步器

我们在上篇文章带领大家阅读了AQS的源码,理解了AQS的底层实现,AQS 为构建锁和同步器提供了一些通用功能的实现,今天我们就实践一下,基于AQS实现一个同步器,看看AQS如何帮助我们快速构建同步器。同步器是一种用于线程同步的工具,控制多个线程对共享资源的并发访问。如Semaphore信号量,CountDownLatch (倒计时器)、CyclicBarrier(循环屏障)都属于同步器。

2024-04-20 21:28:41 13705 67

原创 AQS(AbstractQueuedSynchronizer,队列同步器)源码解读

AQS 的全称为 AbstractQueuedSynchronizer ,翻译过来的意思就是抽象队列同步器。这个类在 java.util.concurrent.locks 包下面。AQS为Java的并发包提供了强大的同步支持。通过内置的FIFO队列来完成资源获取线程的排队工作,并且利用一个被volatile关键字修饰的int类型的变量表示同步状态。AQS 为构建锁和同步器提供了一些通用功能的实现,许多同步类实现都依赖于它,如常用的ReentrantLock、Semaphore等。

2024-04-19 21:15:28 13787 48

原创 Semaphore(信号量)源码解读与使用

Semaphore 是一个在多线程环境中用于控制对共享资源的访问的同步器(synchronizer),它是 Java 5 中引入的 java.util.concurrent(JUC)包的一部分。Semaphore 维护了一个许可集,线程在执行前必须从 Semaphore 获取一个许可。如果没有许可可用,线程将阻塞等待,直到其他线程释放许可。可以用来限制数据库连接数、限制服务器可处理请求数等。

2024-04-17 20:17:25 13585 30

原创 Java多线程实战-从零手搓一个简易线程池(四)线程池生命周期状态流转实现

在前面几篇文章中,我们已经实现了线程池的核心功能:任务队列、执行逻辑以及线程管理。本次我们将继续扩展补充线程池的功能,为线程池添加生命周期管理。通过引入生命周期,我们能够更加灵活地管理和控制线程的创建、运行和销毁过程。可以更好地处理资源分配、任务调度和系统稳定性等方面的问题。

2024-04-09 21:19:28 14797 80

原创 Java多线程实战-从零手搓一个简易线程池(三)线程工厂,核心线程与非核心线程逻辑实现

在上一节我们实现了线程池内部的基本运转逻辑,池化了线程资源进行任务处理,细心的同学可以发现,我们上章没有划分核心线程与非核心线程的概念,在JDK官方的提供的线程池中,线程池中的线程从概念上分为核心线程和非核心线程,核心线程是线程池中长久存在的线程,默认不会被回收,而非核心线程在空闲时间超过设置的最大空闲时间时会被回收,当然,我们也可以通过设置一个属性来运行核心线程被回收。

2024-04-02 15:24:52 14703 47

原创 Java多线程实战-从零手搓一个简易线程池(二)线程池实现与拒绝策略接口定义

在前面的文章中,我们讲解了任务堵塞队列的实现,这篇文章会基于任务堵塞队列实现一个简易的线程池,在后续的文章中,还会继续对本章编写的线程池进行功能扩展和优化。

2024-03-27 14:44:09 244769 6

原创 Java多线程实战-从零手搓一个简易线程池(一)定义任务等待队列

开个新坑-手搓简易线程池。本系列文章将从零开始,一步步手工编码实现一个简单但功能完备的线程池。我们将逐步介绍线程池的各个核心组件,并分析它们的作用和实现思路。通过这个过程,我们可以更好地掌握多线程编程的技巧,并培养编码能力和系统性思维。

2024-03-25 20:22:10 250102 82

原创 GraphQL与REST在微服务接口设计中的对比分析与实践

本文对比分析了GraphQL与REST在微服务接口设计中的优缺点,并结合真实电商平台实战案例与代码示例,提供选型建议与性能验证,帮助开发者在项目中做出精准决策。

2025-07-16 16:00:43 539

原创 深入解析Kubernetes Pod安全策略与Admission Controller

本文深入探讨Kubernetes Pod安全策略与Admission Controller的原理与实践,涵盖安全背景、关键原理、源码解读、实战示例及优化建议,帮助开发者构建安全可靠的容器平台。

2025-07-16 13:01:14 477

原创 RocketMQ性能优化实战指南:原理与实践

全面解读RocketMQ在高并发场景下的性能优化实践,从网络、存储、刷盘策略到线程池、GC调优及监控方案,附生产级配置与代码示例。

2025-07-16 08:00:55 609

原创 Hystrix与Resilience4j在微服务熔断降级中的应用对比与实战

本文对比了Hystrix与Resilience4j在微服务熔断降级中的主要差异与应用场景,并通过实战示例验证了Resilience4j在性能与可扩展性方面的优势。建议新项目优先选型Resilience4j,同时对遗留项目保持Hystrix兼容,逐步平滑迁移。文章由优快云用户原创,转载请保留出处。

2025-07-15 13:01:56 230

原创 基于OAuth2与JWT的微服务API安全架构设计分享

本文基于OAuth2与JWT协议,深入解析微服务API安全架构设计,涵盖核心原理、关键源码、实战示例与优化建议,适用于有一定基础的后端开发者构建高效、无状态认证授权体系。

2025-07-15 08:00:57 315

原创 Kafka事务消息与Exactly-Once语义实战指南

本文结合生产环境实战经验,深入剖析Kafka事务API及Exactly-Once端到端保障策略,提供完整的代码示例与常见坑点解决方案,助力后端开发者快速实现高可靠消息投递。

2025-07-14 16:01:17 514

原创 Istio、Linkerd与Kuma服务网格方案对比分析与实践验证

本文对比分析了Istio、Linkerd与Kuma三种主流服务网格方案,从架构原理、功能特性、资源消耗、部署复杂度与性能表现等维度进行深入探讨,并通过实战示例在 Kubernetes 集群中验证效果,为微服务治理选型提供切实可行的参考。

2025-07-14 13:01:27 451

原创 Spring Cloud Config 与 Nacos 配置中心方案对比实战指南

本文深入对比了Spring Cloud Config与Nacos两种配置中心方案,从架构原理、优缺点、实战接入和最佳实践角度,帮助读者选择合适的配置管理解决方案。

2025-07-14 09:24:56 924

原创 大规模电商系统分库分表实战经验分享

结合实际大规模电商系统场景,介绍分库分表的选型、架构设计、Spring Boot与ShardingSphere集成、性能调优及常见坑解决方案,帮助开发者高效落地分库分表方案。

2025-07-13 18:46:38 972

原创 基于Redis Streams的实时消息处理实战经验分享

本文分享了基于Redis Streams实现高性能实时消息处理的生产环境实战经验,包括选型、代码示例、问题排查和优化建议。

2025-07-13 18:43:16 975

原创 MongoDB性能优化实战指南:原理、实践与案例

本文深入探讨MongoDB性能优化的原理及实践,通过真实生产案例,介绍索引优化、数据分片、读写分离等策略,并提供可运行示例代码,帮助后端开发者提升MongoDB性能。

2025-07-13 15:28:16 435

原创 微服务环境下的灰度发布与金丝雀发布实战经验分享

本文结合真实生产环境,分享在微服务架构中实施灰度发布与金丝雀发布的实战经验,涵盖业务场景、技术选型、实现方案、常见问题及解决方案,以及最佳实践建议,帮助后端开发者在复杂环境下平滑实现线上版本升级。

2025-07-12 20:39:21 453

原创 Spark计算性能优化实战指南

本文结合生产环境10TB数据处理场景,系统分享Spark计算性能优化实战经验,从技术选型、参数调优到数据倾斜处理与资源管理,提供可落地的代码示例和配置建议,帮助后端开发者提升Spark作业性能。

2025-07-12 16:27:53 366

原创 Spring Security 安全认证深度解析与实战指南

本文深入解析Spring Security的核心原理及其实战应用,从基础配置到源码剖析,再到安全性能优化,为后端开发者提供一份切实可行的实践指南。

2025-07-12 16:07:23 254

原创 ELK日志分析实战指南:生产环境部署与优化

本文分享了ELK在生产环境中的部署、日志采集、索引管理以及性能优化实践,提供完整配置与示例,帮助开发运维团队构建高效可靠的日志分析平台。

2025-07-12 13:23:19 371

原创 Kubernetes自动扩缩容方案对比与实践指南

本文从多种 Kubernetes 自动扩缩容解决方案入手,对 HPA、VPA、Cluster Autoscaler、KEDA 等方案进行对比分析,并结合真实生产环境案例,给出选型建议与最佳实践。

2025-07-12 13:21:48 621

原创 大规模集群下 Prometheus 监控架构实战经验分享

本文结合真实生产环境,深入分享在大规模集群中构建和优化 Prometheus 监控架构的实战经验,包括高可用设计、服务发现、数据存储、告警方案与性能调优,提供完整代码示例与最佳实践。

2025-07-11 09:38:45 430

原创 Docker镜像构建与缓存优化实战指南

本文从实际业务场景出发,分享Docker镜像构建与缓存优化的实战经验和最佳实践,深入讲解构建流程、缓存策略与常见问题排查,助力提升镜像构建速度和稳定性。

2025-07-11 09:34:54 409

原创 缓存穿透与击穿多方案对比与实践指南

本文深入对比缓存穿透与缓存击穿的多种解决方案,结合生产环境实战案例,分析各方案优缺点并给出选型建议与最佳实践,帮助后端开发者有效提升系统性能和稳定性。

2025-07-10 21:10:25 531

原创 生产环境CI/CD流水线构建与优化实践指南

本文结合真实生产环境场景,分享从项目初始化、工具选型、流水线架构设计,到并行构建、缓存策略、蓝绿/金丝雀发布等优化实践,着重实战经验和踩坑总结,帮助读者快速打造高效稳定的CI/CD流水线。

2025-07-10 20:52:39 903

原创 Spring Boot微服务中集成gRPC实践经验分享

本文分享了在生产环境中Spring Boot微服务集成gRPC的实践经验,包括场景背景、技术选型、实现方案、踩坑与解决方案及最佳实践,帮助开发者快速上手并提升性能和可维护性。

2025-07-09 17:34:53 792

原创 Spring WebFlux 响应式编程原理与实战指南

本篇文章深入解析了Spring WebFlux的响应式编程原理,结合真实项目场景提供完整的代码示例与性能优化建议,帮助后端开发者快速上手并掌握高并发下的响应式架构设计。

2025-07-09 15:17:04 384

原创 Java内存模型在高并发场景中的应用与优化实践

本文深入剖析Java内存模型(JMM)在高并发场景下的原理与应用,结合关键源码和实际示例,分享实战中的优化策略与最佳实践,帮助开发者提升多线程性能与稳定性。

2025-07-08 16:54:32 703

原创 Kubernetes Operator开发实战指南

本文基于生产环境实际场景,深入分享 Kubernetes Operator 开发全过程,从需求背景、技术选型、代码实现到常见问题排查,帮助开发者快速上手并构建自主可控的应用运维流程。

2025-07-08 14:47:56 784

原创 RocketMQ死信队列问题排查与实战解决方案

本文深入剖析RocketMQ死信队列常见问题,从现象描述、定位流程、根因分析到实战解决与预防措施,全方位提供可运行的代码示例与生产环境优化建议,帮助后端开发者高效排查与应用死信队列。

2025-07-07 15:52:42 743

原创 PostgreSQL性能优化实践指南:从原理到实战

本文深入解析PostgreSQL数据库性能优化的关键原理和实践方法,从系统架构、查询执行引擎、索引策略、配置调优等方面展开,结合实际场景和示例讲解核心配置及SQL优化技巧,提供可操作的调优建议与最佳实践,帮助有一定数据库基础的后端开发者在生产环境中实现高性能、稳定可靠的PostgreSQL服务。

2025-07-07 15:50:08 898

原创 MySQL慢查询优化实战指南

本文从真实生产场景出发,结合慢查询日志、EXPLAIN分析、索引优化、SQL重写、分区分表等技术手段,深入分享MySQL慢查询优化的实战经验与最佳实践,帮助开发者在高并发环境中有效提升数据库性能。

2025-07-06 16:00:43 598

原创 Redis+Caffeine双层缓存策略对比与实践指南

高并发压力:在电商、社交和金融等场景,流量暴增时,后端需要稳定快速地响应请求。数据库直接读写容易成为瓶颈。远程缓存瓶颈:Redis作为分布式缓存,虽然具备高吞吐,但网络IO和单实例内存有限,可能产生延迟抖动或雪崩风险。本地缓存局限:Caffeine、Guava等本地缓存访问速度极快,但只存在于单节点,无法实现多实例共享,且容易造成缓存不一致。双层缓存价值:结合两者优点,本地拦截大部分热点请求,Redis负责跨实例共享和持久化,形成本地—远程的二级缓存架构,平衡性能与一致性。双层缓存架构。

2025-07-06 15:58:29 1368

繁体简体字幕转换工具1

1、普通转换 可以直接将字幕文件拖拽到软件中,自动读取字幕文件内容,点击“转为简体”或“转为繁体”完成转换,点击“保存”按钮可以输出保存。 2、批量转换 可以直接将含有字幕的文件夹拖拽到软件中,选择转换的格式,填写输出的文件名样式,点击“开始转换”即可完成转换。 批量转换使用多线程技术,转换过程UI不卡顿,其他功能可正常同步使用,方便并快捷。 需要注意当目标“文件名”与源文件或已存在文件同名时会覆盖掉已有文件,请注意备份源字幕文件。 批量转换将自动获取该目录下的全部字幕文件(包括ASS、SSA、SRT、LRC、TXT),其他格式文件不会读取。 3、文件名样式说明 批量转换使用的是文件名样式替换掉替换符,替换符使用`{}`包裹,已有替换符如下: `{name}` 源文件名称(不包含路径与扩展名) `{exten}` 源文件扩展名,必须存在的替换符。 `{num}` 文件序号,将列表中的序号使用在文件名中 文件名样式中除替换符以外的字符将原样输出,需要注意所有字符必须

2024-02-11

Snipaste - 高效桌面截图与贴图神器(类似QQ截图)

Snipaste 是一款备受赞誉的免费桌面截图工具,以其简洁的设计、强大的功能和高效的用户体验赢得了全球用户的青睐。它不仅提供基础的屏幕截图服务,更具备独特的贴图功能,让您在捕捉屏幕画面后能直接将截图作为可调整大小的贴图返回到屏幕上,极大地提高了工作效率。 核心特性如下: 一键截图:只需轻轻一按F1键,即可快速启动截图模式,选择任意形状区域进行截图。 智能贴图:截取的图像可以立即转换为半透明悬浮窗口,方便您在其他工作场景中参考对比,且支持缩放、拖拽和旋转等操作。 自定义快捷键:用户可以根据个人习惯在设置中自由定制截图快捷键和其他功能键。 高级标注:截图时可添加箭头、文字、高亮等注释内容,帮助您清晰传达信息。 高质量输出:无论是保存静态图片还是导出GIF动画,Snipaste都能确保图像质量不失真,满足不同场合的需求。 轻量级运行:Snipaste占用系统资源少,始终保持在后台静默运行,随时响应您的截图需求。 无需安装(可选):该软件支持免安装运行,解压即用,非常适合移动办公或临时使用环境。

2024-02-07

Gif123 屏幕Gif录制工具 -windows

让您眼前一亮的神奇工具——Gif123,这是一款功能强大且操作简便的屏幕内容录制软件,它将繁琐的录屏过程化繁为简,一键即可轻松将您的屏幕活动转化为生动活泼的GIF动态图。无论您是想分享精彩的游戏瞬间、教学演示的操作步骤,还是记录程序运行的过程,Gif123都能以超高的效率和出色的画质满足您的需求。 这款软件的独特之处在于其便捷高效的录制方式,无需复杂的设置与编辑,只需轻点鼠标,即可开始录制并实时转换为流畅清晰的GIF文件。Gif123以其卓越的性能和直观的用户界面,为您打造无缝的屏幕内容创作体验。 在瞬息万变的数字世界里,Gif123就是您的得力助手,助您随时随地捕捉灵感闪现,将每一个珍贵的屏幕画面永久留存,并以最直观的形式传递给全世界。现在就上传并尝试这款强大的Gif123,让您的屏幕故事跃然“GIF”上,生动展现!

2024-02-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除