LockSupport深度解析:线程阻塞与唤醒的底层实现原理
LockSupport简介 LockSupprot 用来阻塞和唤醒线程,底层实现依赖于 Unsafe 类。 LockSupport用来创建锁和其他同步类的基本线程阻塞原语。简而言之,当调用LockSupport.park时,表示当前线程将会等待,直至获得许可,当调用LockSupport.unpar ...
PHP 的问题不在语言本身,而在我们怎么写它
PHP 的问题不在语言本身,而在我们怎么写它 代码库烂了不是语言的锅,是赶工和惯性。 PHP 的口碑,几乎在每次技术讨论中都会被拎出来。应用慢、乱、不安全、改起来痛苦?总有人耸耸肩说:"嗯……毕竟是 PHP 嘛。" 这话很少出于技术判断,更像是一种习惯性甩锅。 事实比这简单,也更扎心:大多数 PHP ...
酷监控!一款高颜值的监控工具!
coolmonitor —— 酷监控,一个高颜值的监控工具,支持网站监控、接口监控、HTTPS 证书监控等多种监控类型,帮助开发者及运维人员实时掌握网站、接口运行状态。 ...
剑指offer-76、删除链表的节点
题⽬描述 给定单向链表的头指针和⼀个要删除的节点的值,定义⼀个函数删除该节点。返回删除后的链表的头节点。 此题对⽐原题有改动 题⽬保证链表中节点的值互不相同 该题只会输出返回的链表和结果做对⽐,所以若使⽤ C 或 C++ 语⾔,你不需要 free 或 delete 被删除的节点 数据范围: 0<=链 ...
秒杀活动时系统在干什么 PHP 高并发场景优化指南
秒杀活动时系统在干什么 PHP 高并发场景优化指南 秒杀活动是电商平台的关键战役,往往会带来流量和订单的剧烈飙升。秒杀期间,每一毫秒都很关键,后端需要同时扛住海量请求。对 PHP 应用来说,这尤其有挑战性,但只要优化到位,即使流量洪峰来了,用户体验也能稳住。 这篇文章会拆解 PHP 后端在秒杀期间需 ...
使用Mixin类简单重构配置模块
前言 按照个人习惯,项目伊始我会按照如下结构组织项目配置,也就是配置文件放在conf/目录,单独写一个配置模块pkg/config.py去读取加载。有的小项目还好,没什么配置项。但有的项目要调用很多第三方的接口,配置文件写了一堆接口地址、认证方式等,配置模块也相应增加了几百行。看着这快上千行的配置模 ...
MyBatis XML 里<![CDATA[ ]]>的使用
是 MyBatis 中处理 SQL 语句与 XML 语法冲突的安全屏障。对包含 特殊字符 的 SQL 片段进行最小范围的 CDATA 包裹,既保证了安全,又确保了 MyBatis 动态 SQL 功能的完整性。 ...
剑指offer-75、买卖股票的最好时机
题⽬描述 假设你有⼀个数组 prices ,⻓度为 n ,其中 prices[i] 是股票在第 i 天的价格,请根据这个价格数组,返回买卖股票能获得的最⼤收益 你可以买⼊⼀次股票和卖出⼀次股票,并⾮每天都可以买⼊或卖出⼀次,总共只能买⼊和卖出⼀次,且买⼊必须在卖出的前⾯的某⼀天 如果不能获取到任何利 ...
spring6-与juint和mybatis的集成
spring对junit的支持 主要是自动从spring容器中获取bean。不用手动获取了。 spring对junit4的支持 1.引入spring和junit4的依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>s ...
spring-事务管理
事务支持 什么是事务? 在一个业务流程中,需要多条DML(insert、delete、update)语句联合才能完成。这些语句必须同时成功或者同时失败。这样才能保证数据安全。 多条DML同时成功或者同时失败,叫做事务。 事务处理的四个过程 开启事务 执行业务代码 提交事务(没出现异常,提交成功。co ...
剑指offer-74、n个骰⼦的点数
题目描述 把 n 个骰⼦扔在地上,所有骰⼦朝上⼀⾯的点数之和为 s 。输⼊ n ,打印出 s 的所有可能的值出现的概率。 你需要⽤⼀个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰⼦所能掷出的点数集合中第 i ⼩的那个的概率。 示例1: 输⼊: 1 输出: [0.16667,0.16667, ...
Parasoft推出AI自主测试工具,让CI/CD流水线主动优化代码质量
自动化软件测试解决方案领导者 Parasoft,发布了 Jtest 和 dotTEST 两款产品的 2025.2 版本。此次更新凭借AI技术实现了软件测试的重大突破。让CI/CD流水线从单纯的质量“把关者”,转变为主动参与代码优化的“助力者”。 ...
记录使用Arthas修改线上源码重新加载的一次过程
前情提要 线上跑的代码找不到源码了,项目又需要调整某个字段的校验规则,早有耳闻知道可以通过Arthas完成这个场景的需求,实际动手试了试,在此记录一下。 警告!警告! # !!! 重要警告 !!! # 1. 生产环境谨慎使用,先测试 # 2. 修改前备份原始类 # 3. 确保修改符合JVM规范 # ...
spring6-代理模式和AOP
jdbcTemplate jdbcTemplate是spring提供的一个jdbc模板类,是对jdbc的封装。 当然你也可以使用其他框架融入MyBatis、Hibernate。 GoF之代理模式 代理模式的作用 当一个对象需要受到保护的时候,可以使用代理对象去完成某个行为。 需要给某个对象进行功能增 ...
AQS深度探索:以ReentrantLock看Java并发编程的高效实现
概述 AQS ( Abstract Queued Synchronizer )是一个抽象的队列同步器,通过维护一个共享资源状态( Volatile Int State )来表示同步状态 和一个先进先出( FIFO )的线程等待队列来完成资源获取的排队工作,通过CAS完成对State值的修改。 AQS ...
PHP 应用遭遇 DDoS 攻击时会发生什么 从入门到进阶的防护指南
PHP 应用遭遇 DDoS 攻击时会发生什么 从入门到进阶的防护指南 暴风雨前的宁静 想象一下,黑色星期五或者某个大促活动。你用 PHP 搭建的电商平台正在迎接前所未有的流量,订单源源不断,用户热情高涨,PHP 应用拼尽全力在扛。然后——啪——网站突然崩了。 你查日志,到底怎么了?流量确实飙了,但这 ...
SQLAlchemy中使用UPSERT
前言 SQLite 和 PostgreSQL 都支持 UPSERT 操作,即"有则更新,无则新增"。冲突列必须有唯一约束。 语法: PostgreSQL: INSERT ... ON CONFLICT (column) DO UPDATE/NOTHING SQLite: INSERT ... ON ...
5、FileDescriptor的源码和使用注意事项(windows操作系统,JDK8)
操作系统使用文件描述符来指代一个打开的文件,对文件的读写操作,都需要文件描述符指向存储设备的不透明标识符。Java虽然在设计上使用了抽象程度更高的流来作为文件操作的模型,但是底层依然要使用文件描述符与操作系统交互,而Java世界里文件描述符的对应类就是FileDescriptor。同时,Java规定 ...
告别逐行翻日志!这款神器一键可视化解析 Nginx 日志!
nginxpulse —— 一款轻量级 Nginx 访问日志分析与可视化面板,提供实时统计、PV 过滤、IP 归属地与客户端解析。 ...


