2 1 . Q u e u e M a n a g e m e n t
什 么 是 队 列 ?
队 列 用 来 保 持 数 据 项 目 的 先 入 先 出 ( F I F O ) 顺 序 。 例 如 , 快 餐 店 排 成 一 队 等 待 的 顾 客 就 是 处
于 队 列 中 。 队 列 在 生 产 者 / 消 费 者 模 型 中 很 有 用 , 该 模 型 中 代 码 的 一 部 分 创 建 数 据 给 其 它 部 分 代
码 使 用 。 使 用 队 列 的 优 点 是 生 产 者 和 消 费 者 的 执 行 速 度 不 需 要 一 样 。 如 果 消 费 速 度 比 生 产 速 度 慢 ,
那 么 队 列 将 变 满 , 生 产 者 代 码 将 被 强 制 等 待 直 到 消 费 者 在 一 个 新 元 素 加 入 队 列 之 前 把 一 个 元 素 剔
除 出 队 列 。
图 一 : L a b V I E W 提 供 的 队 列 函 数
分 别 介 绍 这 9 个 节 点 的 具 体 功 能 :
1 : 获 得 队 列 ( 实 际 是 得 到 队 列 的 参 考 ) 它 有 5 个 数 据 端 子
n a m e : S t r i n g 队 列 在 L V 系 统 中 是 名 称 来 区 分 的 , L V 系 统 自 己 维 护 一 个 包 含 的 目 前 所 有 队 列
的 表 , 当 你 运 行 这 个 函 数 的 时 候 , 它 首 先 会 查 找 表 中 是 否 已 经 存 在 这 个 队 列 参 考 , 如 果 存 在 , 就
直 接 返 回 这 个 参 考 , 如 果 不 存 在 , 就 建 立 一 个 新 的 队 列 , 并 将 队 列 参 考 加 入 表 中 进 行 维 护 。 这 样
做 的 好 处 是 非 常 明 显 的 , 允 许 我 们 在 任 何 子 V I 中 , 只 需 要 知 道 队 列 的 名 称 就 可 以 运 行 这 个 函 数
直 接 得 到 队 列 参 考 , 不 用 通 过 全 局 变 量 或 者 数 据 流 输 入 来 得 到 参 考 , 在 一 个 层 层 嵌 套 的 V I 中 想
传 递 一 个 数 据 很 不 容 易 , 也 不 利 于 模 块 化 。
m a x q u e u e s i z e : I 3 2 定 义 的 队 列 的 最 大 长 度 , 当 输 入 - 1 时 , 队 列 长 度 不 受 限 制 , 需 要 注 意 的