文件名称:的查询循环-《中国2060年前碳中和研究报告》
文件大小:4.49MB
文件格式:PDF
更新时间:2024-06-28 01:03:11
UML 状态图 实用C设计 实用C++设计 中文全文
确等待的一个事件。为了得到一个任务控制流看上去可能是什么样,你可以简单的把图 6.1 的查询循环 粗线用阻塞调用代替。给这些代码增加新的事件是困难的,并且通常需要对整个任务结构进行大改。 由于在任务代码里散布着明确的阻塞调用,这是内核通过提供一个丰富的阻塞机制所鼓励的,传 统的多任务架构和事件驱动型范型不兼容。然而,它可以为执行同时主动对象而被改造(实际上是简 化),我在后面 6.3 节所解释这点。在这个方面的特殊价值是绝大多数内核或 RTOS 提供的基于消息 队列的线程安全的任务间通讯机制。消息队列可以为发送事件给主动对象而被容易的定制。 6.2.3 传统的事件驱动型系统 一个传统的事件驱动型系统被清楚的分为事件驱动型基础设施和应用程序(见图 6.4 )。事件驱动型 基础设施包含一个事件循环,一个事件调度器,和一个事件队列。应用程序包含共享共同数据的事件处 理函数。 图 37 带有事件循环和一个单一事件队列的传统的事件驱动型系统 35 使用某些内核阻塞机制能够导致一个运行就绪的高优先级任务不能抢夺一个较低优先级的任务的情况。这种情况被 称为优先级反转。 保留中文简体翻译的全部版权 anymcu@gmail.com 2010 200