在多处理器上,每个核心都可以有自己的变量。我认为它们是不同地址的不同变量,尽管它们在同一个进程中并且具有相同的名称。但我想知道,内核是如何实现的?是不是分出一block内存存放所有的percpu指针,每次都用shift什么的把指针重定向到某个地址? 最佳答案 普通全局变量不是每个CPU。自动变量在栈上,不同的CPU使用不同的栈,自然会得到不同的变量。我猜你指的是Linux的每CPU变量基础结构。大多数魔法都在这里(asm-generic/percpu.h):externunsignedlong__per_cpu_offset[NR_