惊群问题

维基百科,自由的百科全书
跳到导航 跳到搜索

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

解决办法可能有:

  1. 不希望把所有进程都唤醒,就采用定点唤醒某一个进程的做法。
  2. 尽量避免进程上下文切换。

C10K问题(Concurrent 10,000 Connections),指服务器同时支持上万个客户端连接的问题。可用Linux的epoll,FreeBSD的kqueue,Solaris的/dev/poll来解决。

C10M问题,是千万级并发实现。Linux上通常用epoll实现。

参考文献[编辑]

  1. ^ A discussion of this observation on Linux. [2017-11-27]. (原始内容存档于2021-03-09). 
  2. ^ A short description of the problem. [2017-11-27]. (原始内容存档于2020-11-11).