Russ Xia Blog

身处寒夜,把握星光。

JDK21中的虚拟线程

虚拟线程的概念、使用、注意事项、源码概览

什么是虚拟线程 在虚拟线程(Virtual Threads)出现之前,Java中只有一个Thread(虚拟线程出来后也被叫做平台线程PlatformThread)。一般来说一个PlatformThread对应一个操作系统线程,所以平台线程的数量受限于操作系统的线程数量上限。 Java SE最常用的JVM是Oracle/Sun研发的HotSpot VM。在这个JVM的较新版本所支持的所...

Spring状态机

状态机的定义、选型和quick start

什么是状态机 状态机就是状态模式的一种实现,状态模式 (State Pattern)是一种行为设计模式,让你能在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。 状态机的全称是有限状态自动机(FSM,有限状态机wiki),有多种类型的动作: 进入动作(entry action):在进入状态时进行 退出动作(exit action):在退出状态时进行 ...

常见的数据库分类和选型

数据库常见分类&数据库对比

常见的数据库分类和选型 数据库排名 SQL vs NoSQL 数据库一般可以分为关系型数据库(SQL)和非关系型数据库(NoSQL:non-relational sql/Not Only SQL)。 常见的关系型数据库有:SQL Server,Oracle,Mysql,PostgreSQL。关系型数据库支持ACID(原子性、一致性、隔离性、耐用性),需要预先指定数据格式。 关系型数...

<程序是怎样跑起来的>读书笔记

cpu、寄存器相关概念

CPU 什么是程序,程序由什么组成? 程序是指示计算机每一步动作的一组指令,由指令和数据组成。 cpu主要由寄存器(暂存指令和数据)、控制器(将内存上的指令、数据读入寄存器)、运算器(运算寄存器上的数据)、时钟(负责cpu的计时)。 程序启动后,根据时钟信号,控制器会从内存中读取指令和数据,暂存到寄存器中。通过对这些指令加以解释和运行,运算器会对数据进行运算,控制器根据该...

乱七八糟的知识

乱七八糟的知识

金融方面的”72法则” 假设以年利率r%投资一笔钱y年,如果r*y=72,那么你的投资差不多会翻倍。 假设年利率为6%,投资12年,大概能得到2.01219647倍的本金 假设年利率为3%,投资24年,大概能得到2.03279411倍的本金 如果是3倍,则那个数字为115。 计算机算法中递归和归纳的区别 关于数学归纳法 最简单和常见的数学归纳法是证明当n等于任意一个...

JDK8升级到JDK17记录

JDK升级的需求背景,以及升级过程中遇到的问题

背景 某个项目属于基础服务,平时qps很高,扩容前共7个实例(8c8g),单机最高约8kqps。扩容后16个实例(6g12g),单机最高大约3k+qps,总qps高峰约4w qps。(使用了一致性hash做负载均衡+内存缓存,所以各个单机负载有一些差距) 关键接口tp9999平均到150ms左右,业务方需求压缩到80ms左右。经过分析和改造,主要的tp9999耗时被卡在了parnew gc...

HTTP中基于Ranges的分片下载与断点续传

基于Ranges的分片下载与断点续传

HTTP下载中的:Range和Chunked 我们经常通过HTTP协议下载大文件时,常见的有两种情况: 知道文件大小,通过请求头Range设定服务器要返回的文件部分。常见的大文件分片下载、音视频的拖动播放都是采用的这种方式实现的。 不知道文件大小,可以设定 Transfer-Encoding 为Chunked,表示分块编码。常见的实时音视频流都是采用这种方式实现的。 基于R...

AAC的实际时长和显示时长

AAC时长显示不精确的原因,如果获取确切的音频时长。

前因 使用ffmpeg查看aac文件时长时,发现文件时长为 Duration: 00:39:50.18, bitrate: 66 kb/s。 $-> ffmpeg -i out.aac [aac @ 0x7fba1800be00] Estimating duration from bitrate, this may be inaccurate Input #0, aac, fr...

H.264编码格式

H.264编码的基本信息和数据格式

H.264概述 H.264是由ITU-T和ISO/IEC MPEG共同开发的一种视频编码技术,H.264被收录到了MPEG4中的第10部分,所以H.264又叫MPEG4 Part 10或MPEG4 AVC,所谓的AVC就是Advanced Video Coding。H.264/MPEG-4 AVC wiki 视频 视频码率 视频码率就是数据传输...

常见的三大直播协议

常见三大直播协议:RTMP、HTTP-FLV、HLS的适应场景及其对比

常见的三大直播协议 简介 关于直播场景,常见的三大直播协议:RTMP、HTTP-FLV、HLS等。 RTMP 全称”Real Time Messaging Protocol“,使用TCP,默认在1935端口上传输一般的FLV格式流,在浏览器端依赖于Flash。 优点:支持加密,隐私性好;实时性好,延迟相对较低 缺点:非公共端口(e.g.:80,443等),可能被防火墙封;跨平台很...