首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ada:词条含义

Ada:词条含义
EN

Stack Overflow用户
提问于 2017-05-30 16:43:40
回答 2查看 2.4K关注 0票数 1

我是Ada的绝对初学者,有一件事我找不到具体的定义--那就是entry语句。

我理解带有屏障的条目--如果屏障为真,则语句可以执行,如果为false,则任务将排队,直到任务被计算为真为止。

例如:

代码语言:javascript
复制
entry Get(Item : out Data_Item) when Number_In_Buffer /= 0 is
begin
...
end Get;

但是,对于entry语句来说,如果没有出现在中,下面的when语句意味着什么?

EN

回答 2

Stack Overflow用户

发布于 2017-05-30 19:14:27

ARM9.4描述受保护的对象,这是条目体(如您的代码)出现的地方。

从您的问题中还不清楚,但我认为您是在用一个条目声明来描述一个受保护的规范。

声明

代码语言:javascript
复制
protected type Resource is
   entry Seize;
   procedure Release;
private
   Busy : Boolean := False;
end Resource;

对应体

代码语言:javascript
复制
protected body Resource is
   entry Seize when not Busy is
   begin
      Busy := True;
   end Seize;

   procedure Release is
   begin
      Busy := False;
   end Release;
end Resource;

如何保护条目不是调用者的事,只是它是。有一件事让我感到困惑,那就是一个进入体必须有一个守卫;在某些情况下(请求搜索二.9. Ada 95理由以寻找protected Event),when True是可以的。

票数 4
EN

Stack Overflow用户

发布于 2017-05-31 04:00:49

条目也是任务通信的连接点。在任务定义中,它是ENTRY。在任务主体中,它是接受语句。因此,任务定义中的每个条目在任务主体中都有相应的接受项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44267708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档