Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 在任务所在的同一过程体中声明的变量是否可以被视为这些任务的共享变量?_Variables_Parallel Processing_Ada_Task - Fatal编程技术网

Variables 在任务所在的同一过程体中声明的变量是否可以被视为这些任务的共享变量?

Variables 在任务所在的同一过程体中声明的变量是否可以被视为这些任务的共享变量?,variables,parallel-processing,ada,task,Variables,Parallel Processing,Ada,Task,变量仅用于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; be

变量仅用于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_变量”对这两个任务都是全局的,但在Ada意义上不是共享的,即为一致的并发访问提供了适当的保护

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