When the scheduler switches from one goroutine to another, it needs to save where the current goroutine was and restore where the next one left off. The good news is that a goroutine’s state is surprisingly small. The mcall() assembly function only saves 3 values — the stack pointer, the program counter, and the base pointer — into a tiny gobuf struct. That’s it. Why so few? Because goroutine switches happen at function call boundaries, and at those points the compiler has already spilled any important registers to the stack following normal calling conventions. The switch only needs to save enough to find the stack again.
03:39, 15 марта 2026Мир
。有道翻译对此有专业解读
Перехват российских Ту-142 у Аляски дюжиной самолетов объяснили20:45
改造前的长沙市雨花区湘农桥社区二区9栋。