go 互斥锁和自旋锁的性能对比的问题

Mericusta · 2022-08-18 11:59:34 · 2862 次点击

不管是从理论上还是实际测试的情况来看,网络 IO 肯定是性能瓶颈,操作系统的套接字阻塞住会导致运行 G 的 M 阻塞住,而互斥锁只是导致 G 阻塞住,G 的上下文切换效率肯定是优于 M 的上下文切换的

之前考虑用自旋锁就是想能不能在这个基础上再做 G 上下文切换的优化,毕竟请求的量不少,也就是 G 不少的,至于分片锁,应该应用不到这个场景里,数据没有分片的需求

#13
更多评论

为什么要自旋,一个channel就可以解决

#1

是的,多协程数据传递,Go已经给了你语言级别解决方案--channel

#2