Skip to content

Latest commit

 

History

History
25 lines (16 loc) · 1016 Bytes

Eventloop的机制.md

File metadata and controls

25 lines (16 loc) · 1016 Bytes

#Eventloop的机制 (正在施工)

什么是Eventloop

事件循环是一种程序运行机制,它的思想可以用下面的伪代码简单描述:

loop start
    if get new message
        process message
back to loop

即通过一个“死循环”来轮询新的消息,当获取到新的消息之后,对消息进行处理。

为何需要事件循环

图形界面程序

图形界面程序的最大特点就是“事件驱动”,即以事件为中心,当用户点击了某一个按钮后,产生一个 clicked 的事件,然后程序再对调用对应的回调(callback)函数,执行对应的操作。

异步的 I/O 请求

如果要读写一个网络资源,比如 QTcpSocket ,大部分情况下是不能够立即读取的,需要等待,而此时可能已经发生了和用户的交互事件,所以程序是不能一直等待Socket的,当Socket可读(写)的时候,产生对应的事件,然后再去执行对应的读(写)逻辑。