最新 最热

Rust 1.99.0 正式发布,新特性该怎么用:新手该不该现在跟进

Rust 1.99.0 于 2026 年 10 月 1 日发布,1.99.1 补丁随后跟进。要不要现在升级,不看新特性,而看你做的是学习、个人项目还是团队项目。本文核对本轮真实变化,给出三种场景的判断结论,以及含 lint 验证与版本回退的升级检查清单。

2026-11-01
73

Python 的 GIL 到底是什么?先搞懂它再动手写多线程

Python 的 GIL 是进程级全局锁,保证同一时刻只有一个线程执行 Python 字节码。CPU 密集型多线程无法真并行只在单核交替,I/O 密集型能靠等待释放锁获得并发;要并行算 CPU 任务用多进程,Python 3.13 起有实验性无 GIL 构建但生产需谨慎。

2026-11-01
75

Python 的二分查找为什么总写错边界?先看清这 3 个坑

二分查找总写错边界,根因在三个地方:循环条件要和对区间语义配对,排除中点必须加一减一否则死循环,找左右边界时命中不能直接返回而要继续收缩。把答案始终在闭区间内的循环不变量钉死,就能避开这些 off-by-one。

2026-11-01
63

C 语言链表里为什么要有两个指针:头指针与遍历指针

链表里同一个地址值有两种含义:一个是整条链表的入口,一个是当前访问的位置。本文用可编译的完整程序说明为什么需要两个变量,演示用入口变量遍历导致的链表丢失,讲清头部插入删除时返回入口与二级指针两种写法,以及释放前先取下一结点的原因。

2026-10-25
220

C 语言里 &Send_buf 取的是数组地址还是首元素:从类型上讲透

&Send_buf 与 Send_buf 打印出的地址相同,类型却完全不同,加 1 之后一个跨整个数组、一个只跨一个字节。本文用可编译的最小程序验证三种写法的差异,讲清数组退化的三条例外,并给出函数传参与打印地址的正确写法。

2026-10-21
515

什么是进程和线程?为什么电脑能一边听歌一边下载文件

本文用工厂与流水线的比喻,讲清进程和线程的区别:进程是运行中的程序、资源分配的基本单位且彼此隔离,线程是进程里的执行路径、CPU 调度的基本单位且共享内存。文章还解释了电脑为何能边听歌边下载,以及多线程共享数据要加锁的原因。

2026-08-19
909

什么是 HTTP 状态码?200、404、500 各自代表什么意思一次讲清楚

HTTP 状态码是服务器对每次请求给出的三位数字应答:200 代表成功、404 代表找不到资源、500 代表服务器内部出错。本文讲清 2xx/4xx/5xx 三大类的含义与排错分工,帮你快速定位问题到底在客户端还是服务端。

2026-08-18
1973

什么是死锁?一文讲透多线程里最易卡死的那件事

死锁,就是多个线程各自占着对方要的锁、互相等待导致全员卡死。本文讲清死锁的四个必要条件、一个最小复现例子,提供统一加锁顺序、加超时、缩小锁范围三种避免办法,并给出用线程栈排查死锁的步骤,帮你写多线程时把卡死挡在门外。

2026-08-13
1308

什么是递归?一文讲透函数自己调用自己的原理与例子

递归就是函数自己调用自己,但必须有终止条件。本文基于 Python 3.10,把递归拆成基线条件和递归步骤两部分,用阶乘、斐波那契、遍历文件夹等例子讲清它的原理、与循环的互转,以及栈溢出等常见坑。

2026-08-11
1496

TIOBE 2026年8月编程语言排行榜解读:Python 稳居第一,MATLAB 跌出前20

2026年8月 TIOBE 编程语言排行榜已发布:Python 以 18.53% 稳居第一,Rust 升至第10(去年第18),MATLAB 十多年来首次跌出前20。本文基于官方数据,解读榜单头部稳定、Rust 上行、MATLAB 退场三大看点,并说明怎么理性看待这份流行度榜单。

2026-08-10
2884