深入理解 RunLoop

事件驱动模型

while (AppIsRunning) {
id whoWakesMe = SleepForWakingUp();
id event = GetEvent(whoWakesMe);
HandleEvent(event);
}

大部分的 GUI 程序都使用了事件驱动模型,有些服务器(nginx, node.js)也使用了事件驱动模型。相比于轮询等其他方式,其优点在于极大的提高了 CPU 使用率,在没有事件的时候,能够让出 CPU 时间片,来事件时也可以快速的得到响应。

Read More