写了个 go 程序, 然后发现 50 多个链接的时候,就占了 20%的 CPU (阿里云双核 4G)
profile 了下, 发现 20% 被 futex 占据
970ms 21.85% 21.85% 970ms 21.85% runtime.futex
怀疑 futex 是 spinlock (不断的尝试获取锁), 然后查找到这篇文章,说futex 支持futex_wake
和futex_wait
就是说,futex 是支持唤醒机制的,那么为什么会占据那么多的 CPU
谢谢