Variables 在任务所在的同一过程体中声明的变量是否可以被视为这些任务的共享变量?
变量仅用于1个任务,但问题是:它可以被称为共享吗 我假设您谈论的是这样的代码结构: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
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意义上不是共享的,即为一致的并发访问提供了适当的保护
即使全局变量实际上只被一个任务引用,因此在访问它时不可能出现任何并发引发的问题,它仍然不会使变量共享