Может ли переменная, которая объявлена в том же теле процедуры, где находятся задачи, рассматриваться как общая для этих задач?

StackOverflow https://stackoverflow.com/questions/1588243

Вопрос

Переменная используется только в 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 быть должным образом защищенным для согласованного параллельного доступа.

Даже если на глобальную переменную фактически ссылается только одна из задач, и поэтому при обращении к ней нет никаких шансов возникновения проблем, вызванных параллелизмом, она все равно не создает переменную общий доступ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top