Indy 中的工作队列系统,调度器,和链引擎都被叫做链。
当使用链的时候,一个基于链的 IOHandler 存储工作项目到有关的工作队列中。在一个工作单元被完成以前,执行这个工作单元的纤程是无法做其它事情的,纤程执行完一个工作单元经后就被挂起。 每个 IOHandler 方法都被简化为一个或多个工作任务。为了最佳性能,每个方法应该被分解 为尽可能少的工作任务。
调度器用于管理纤程。
链引擎是是链系统的最低等级。链引擎实现所有的真正的输入和输出。链引擎可能包含单个线程或者多个。
链引擎的工作是从工作队列中提取任务并完成任务。当每个任务完成时,链引擎通知纤程调度器, 然后纤程调度器评估哪个纤程应该被考虑调度。
链引擎然后继续工作队列中的下一个任务。
如果工作队列中没有项目,链引擎保持空闲状态。
有多个链引擎类型可以被用来实现 I/O 完成端口,Winsock,重叠 I/O,或者其他的。
时间: 2024-10-08 00:49:31