APC的执行及执行时机
2023-08-02
10
0
当线程中的ApcListHead链表中不为空时,就表示该线程拥有APC,线程应在合适的时机执行该APC。
APC执行时机
APC常见的执行时机:
- 线程切换:当当前线程处于阻塞状态,比如等待用户输入或者等待磁盘IO完成时,操作系统可以选择在这个时机执行排队中的 APC。这样可以充分利用线程的等待时间,提高系统的并发性。
- 定时器:操作系统可以设置定时器,在特定的时间间隔或者时间点触发执行 APC。这在处理一些定时任务或者周期性的操作非常有用,比如定时刷新界面、定时发送心跳包等。
- 异步IO完成:当一个异步IO操作完成时,操作系统可以执行与该操作关联的 APC。这样可以在IO操作完成后立即执行后续的处理逻辑,而不需要主动轮询IO状态。
- 信号量和事件:当某个信号量或者事件的状态发生改变时,操作系统可以执行与其关联的 APC。这在实现基于事件驱动的编程模型时非常有用,比如处理鼠标点击、键盘输入等。
- 系统调用返回。