分类 · 文章

后端开发

PHP / Java / Python / Go 语言实践、框架源码、微服务、数据库、性能优化

共 243 篇文章

系统调用与 M/P 解绑

系统调用与 M/P 解绑 当一个 goroutine 执行 read()、write() 或 accept() 等阻塞式系统调用时,线程(M)会从用户态陷入内核态。如果这时 M 仍然霸占着 Processor(P),那么 P 上的其他 go…

抢占式调度实现细节

抢占式调度实现细节 抢占式调度实现细节 Go 1.13 及更早版本是"绅士调度"——goroutine 只有在函数调用、channel 操作或锁获取等时机才会主动检查是否需要让出 CPU。如果一个 goroutine 陷入了纯死循环,它可能…

主键选择:从单机到分布式,一个被低估的性能决策

> 上一篇文章我们聊了如何用极小的内存判断手机号是否存在。 但数据最终要落库,落库就绕不开一个最基础的问题:主键用什么? 单机时代,AUTO_INCREMENT 就够了。但一旦进入分库分表、微服务集群,自增主键立刻失效——每个库都从 1 开…

Go Context 到底是什么?

Context 是 Go 中用来控制“一次任务生命周期”的工具。 可以用于取消任务、设置超时时间和在一次请求链路中传递一些上下文信息。 我们可以把 Context 想象成一个“遥控器”。 一个 HTTP 请求进来了: 如果用户突然关闭页面,…

泊松分布:从基础到实际应用

泊松分布:从基础到实际应用 做技术的应该都遇到过这种场景:服务器每分钟收到多少请求?接口一天报错几次?网站一小时来多少访客? 这些问题的共同点是:在一段固定时间里,某个事件发生了多少次。 这类数据有个特点:单次看是随机的,但拉长周期会有一个…

用 Rust 写 Agent 服务 -- adk-rust 上手记

前阵子我给手上一个 Rust 服务加了一个 Agent 能力。用户用自然语言问一句,服务端自己挑工具、记状态,把结果流式吐回来。以前这类活儿我会直接开 Python,agent 的生态都在那边,这次不行,这段能力要嵌进一个已经在跑的服务里。…

【AI开发之Rust】第 12 课:并发模型与同步原语

12.1 这节课解决什么问题 多线程编程最大的噩梦是数据竞争:两个线程同时读写同一块内存,行为未定义。其他语言的解决方案靠程序员自律 + 各种加锁约定,依然防不胜防;Rust 的方案是把"能不能安全地跨线程共享/传递"变成类型系统的一部分(…

Java空指针这次真把我坑惨了

上周灰度上线时,一个 NPE 直接让我们的订单履约服务瘫痪了 17 分钟——谁能想到,罪魁祸首竟是一行 Map.get().toString()?这坑踩得我连夜重审了项目里 300+ 处可能埋雷的链式调用。今天和你聊聊这个看似简单却暗藏杀机…

Redis 版本演进、新特性与协议那些事儿

前言 Redis 每个版本都有自己的脾气,有的适合稳扎稳打,有的适合尝鲜,有的为了适应 AI 。 这篇文章的目标是:扒一扒每个版本的核心变化、好玩的新命令、协议许可证的来龙去脉。 另外,如果你是自己下载 Redis 源码编译、或者用 Doc…

语音AI为什么总抢话?用VAD和打断机制做对实时对话

语音助手“像不像人”,常常不取决于声音多自然,而取决于它何时开始、何时停下。通俗地说,VAD像门口的感应灯:检测到你开口就点亮,沉默一段时间才熄灭。学会它,你就能理解语音Agent为什么会抢话、吞字,以及用户打断时为何必须同时停止生成和清空…

使用 Python 将 DOCX 转换为 Markdown

使用 Python 将 DOCX 转换为 Markdown 06_34_10 PM.png Markdown 以纯文本形式保存内容,结构标记轻量,既能被各种文档平台渲染,也能直接作为普通文本处理。在把已有文档接入文档站点、静态博客、代码仓库…