返回介绍

13.3.5 get()

发布于 2020-09-09 22:55:52 字数 467 浏览 987 评论 0 收藏 0

get()方法从一个mailbox中重新获得一个消息。

get()方法的原型如下:

task get(ref singular message);

消息可以是任意单一表达式,并且它必须是一个有效的左侧表达式。

get()方法从mailbox中重新获得一个消息,也就是说从mailbox队列中删除一个消息。如果mailbox是空的,那么当前的进程阻塞直到一个消息被放置到mailbox中。如果在消息变量和mailbox中的消息间存在类型不匹配,那么会产生一个运行时错误。

非参数化的mailbox是无类型的,也就是说,单个mailbox可以发送和接收不同的数据类型。因此,除了正在被发送的数据(也就是消息队列)外,一个mailbox的实现必须维护通过put()方法放置的消息数据类型。为了使能运行时类型检查,这种机制是必需的。

mailbox等待队列是FIFO。这种方式不能保证进程到达队列的顺序,它仅仅能够保持进程到达的顺序。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文