可以在同一过程体中声明的变量,其中任务被视为共享这些任务吗?

时间:2009-10-19 11:50:04

标签: variables parallel-processing ada task

变量仅用于1个任务,但问题是:它可以被CALLED共享吗?

1 个答案:

答案 0 :(得分:1)

我假设您正在谈论类似这样的代码结构:

procedure A_Procedure_Body is  

   task T1 is
      entry T1_E1;
   end T1;  

   task T2 is
      entry T2_E1;
   end T2;  

   Some_Variable : Integer;  

   task body T1 is
      T1_Local : Integer;
   begin
      T1_Local := Some_Variable;
       ...
   end T1;  

   task body T2 is
      T2_Local : Integer := 42;
   begin
      Some_Variable := T2_Local;
      ...
   end T2;  

begin
   null;
end A_Procedure_Body;

在这种情况下,“Some_Variable”对于两个任务都是全局,但在Ada意义上不是共享,而是为了一致的并发访问而受到适当保护。

即使全局变量实际上只被其中一个任务引用,因此在访问它时不会发生任何并发启动的问题,它仍然不会使变量共享