后端

【高并发】不得不说的线程池与ThreadPoolExecutor类浅析

大家好,我是冰河~~ 今天,我们一起来简单聊聊线程池中的ThreadPoolExecutor类,好了,不多说了,开始进入今天的正题。 一、抛砖引玉 既然Java中支持以多线程的方式来执行相应的任务,但为什么在JDK1.5中又提供了线程池技术呢?这个问题大家自行脑补,多动脑,肯定没坏处,哈哈哈。。。 说起Java中的线程池技术,在很多框架和异步处理中间件中都有涉及,而且性能经受起了长久的考验。可以这

【Java】【JVM】垃圾回收深度解析:G1/ZGC/Shenandoah原理、日志分析与STW优化

JVM垃圾回收深度解析:G1/ZGC/Shenandoah原理、日志分析与STW优化本文深入剖析JVM三大现代垃圾回收器,提供生产级调优案例,帮助你将STW停顿从秒级降至毫秒级。 一、算法原理深度剖析 1.1 G1(Garbage First)算法原理 设计目标:平衡吞吐量与停顿时间,可预测的停顿&

【MySQL筑基篇】新手必看:聚簇索引、非聚簇索引与回表,一篇扫清盲区

🍃 予枫:个人主页 📚 个人专栏: 《Java 从入门到起飞》《读研码农的干货日常》 💻 Debug 这个世界,Return 更好的自己! 引言 做后端开发的同学,大概率都听过“索引优化”,也用过主键索引提升查询速度。但你真的懂索引吗?日常开发中

怎样理解wait()、notify()和notifyAll()

wait():让持有该对象锁的线程等待 notify():唤醒任意一个处于waiting状态的线程 notifyAll():唤醒所有处于waiting状态的线程。 他们之间的关系是:通过调用对象的wait()方法使线程暂停运行,通过notify/notifyAll方法唤醒wait()暂停的线程。 注意: 调用对象的wait()、notify()、notifyAll()方法需要拥有对象的监视锁,即

分布式 - 演进过程

单机架构 网站初时,应用数量和用户量都极少,可以把应用程序和数据库部署在同一台服务器上。 第一次演进:应用与数据库分离 应用与数据库对资源的消耗不同,分开部署在独立的服务器上能显著提高两者各自性能。 随着用户数的增长,并发读写数据库成为瓶颈 第二次演进:引入缓存 缓存能把绝大多数请求在读写数据库前拦截掉,大大降低数据库压力。 使用分布式缓存,例

MySQL Explain 分析 SQL 执行计划

MySQL Explain 分析 SQL 执行计划 在优化 SQL 查询性能时,了解查询的执行计划至关重要。MySQL 提供的 EXPLAIN 工具能够帮助我们深入了解查询语句的执行过程、索引使用情况以及潜在的性能瓶颈。本文将详细介绍如何使用 EXPLAIN 分析 SQL 执行计划,并探讨其中各个重要字段的含义以及优化建议。 1. 什么是 EXPLAIN EXPLAI

【工作】板书窥课-“课间活动”(2)

环节3-“一共有多少盆花?” 主题图还是信息丰富的操场,问题:“一共有多少盆花?” Q:“要解决这个问题,我们首先应该做什么?” S:“找信息!” Q:“找什么信息?谁的信息?随便找吗?“ S:”找花的信息!“ T:”也就是说首先根据问题去找到相关的信息。“板书”问题-信息“ Q:”现在能解决这个问题了吗?“ S有些犹豫,因为信息有些不寻常,”有3组花是5盆,有1组是3盆。“孩子们发

我用 TRAE 做了一个不一样的 MySQL MCP

欢迎来到我的博客,代码的世界里,每一行都是一个故事 🎏:你只管努力,剩下的交给时间 🏠 :小破站 我用 TRAE 做了一个不一样的 MySQL MCP 摘要 为什么要做这个工具? 痛点场景 我们的解决方案 环境准备 必需的运行环境 开发工

深入浅出 RabbitMQ-交换机详解与发布订阅模型实战

大家好,我是工藤学编程 🦉 一个正在努力学习的小博主,期待你的关注 实战代码系列最新文章😉 C++实现图书管理系统(Qt C++ GUI界面版) SpringBoot实战系列🐷 【SpringBoot实战系列】SpringBoot3.X 整合 Min