惊群效应


惊群效应

惊群问题

  • 惊群问题是计算机科学中,当许多进程等待一个事件,事件发生后这些进程被唤醒,但只有一个进程能获得CPU执行权,其他进程又得被阻塞,这造成了严重的系统上下文切换代价。

解决办法

  1. 不希望把所有进程都唤醒,就采用定点唤醒某一个进程的做法
    • 比如说C++在std::condition_variable满足条件,线程唤起时,其实际上并不会唤起所有等待的线程,而是随机唤起一个正在等待的线程。这样做的达到的结果跟唤起所有线程一起争抢锁资源的结果一样,但是可以很大程度上避免系统上下报文的切换
  2. 尽量避免进程上下文切换。
    • 采用合适的任务分配策略,减少正在等待线程的数量

参考资料

https://zh.wikipedia.org/wiki/%E6%83%8A%E7%BE%A4%E9%97%AE%E9%A2%98

拓展资料

nginx是如何解决惊群效应的

https://segmentfault.com/a/1190000044210775


文章作者: xucanxx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 xucanxx !
  目录