后端

第二章 性能瓶颈的分析和定位(5)

关于读时间戳计数器(Read Time-Stamp Counter)的注记         Intel处理器有一个内部保留的计数器,即时间戳计数器(TSC), 可以通过一条简单的读取时间戳计数器指令(RDTSC)读取。该计数器保存一个64位的从处理器开机开始的时钟周期计数。我曾看到过直接用这条指令实现性能测量的代码,如果你碰到这条指令,请不必惊奇——它的确非常快!然而,在现代流水线多核CPU上

centos nginx申请免费https证书

前言 各大厂有免费证书申请渠道,但是需要配置DNS,某些情况下无法掌控域名的DNS解析,Let's Encrypt可以很好的解决这个问题,只要你有网站的管理权就能搞定,不过证书的有效期是三个月,需要搞一个定时任务隔一段时间申请一次。 操作步骤 1.安装certbot ##安装前置依赖 yum install -y epel-release yum install python2-certbot-n

SpringBoot @Scheduled Cron 表达式 详解

Cron 表达式详解Cron 表达式是用于定义定时任务执行时间的字符串,广泛应用于 Spring 的 @Scheduled、Quartz 等定时任务框架。其核心是通过 ‌时间字段‌ 和 ‌通配符‌ 组合实现复杂的调度规则。 1. 表达式格式‌Cron 表达式由 ‌6或7个字段‌ 组成,分别表示不同时间单位(Spring 中通常用 ‌6位‌ 格式&

手写Dubbo SPI机制和源码解析

版本 2.7.8 SPI机制 官方文档介绍如下 SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。 说白了,SPI是一种第三方框架常用的扩展手段:第三方

读完 RocketMQ 源码,我学会了如何优雅的创建线程

RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时、高可靠的消息发布与订阅服务。 这篇文章,笔者整理了 RocketMQ 源码中创建线程的几点技巧,希望大家读完之后,能够有所收获。 1 创建单线程 首先我们先温习下常用的创建单线程的两种方式: 实现 Runnable 接口 继承 Thread 类 ▍一、实现 Runnable 接口 图

26. 删除排序数组中的重复项

26. 删除排序数组中的重复项 题目链接: 难度:简单 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

【SpringBoot】你不能不会的SpringBoot图形验证码生成

文章目录 手写验证码 新建验证码工具类 Controller中调用 Apifox中验证 Hutool图形验证码 引入依赖 LineCaptcha:线段干扰的验证码 CircleCaptcha:圆形干扰验证码 ShearCaptcha:扭曲干扰验证码 GifCaptcha:GIF验证码 自定义验证码 纯数字验证

509. 斐波那契数

1.题目 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 给定 n ,请计算 F(n) 。 示例 1: 输入:n = 2 输出:1 解释:F(2) = F(1) + F(0) = 1 +