Può variabile che viene dichiarata in corpo stesso procedimento in cui le attività vengono essere considerato come condivisa per questi compiti?

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

Domanda

variabile viene utilizzata solo in 1 compito, ma la domanda è: può essere chiamata condivisa?

È stato utile?

Soluzione

sto supponendo che si sta parlando di un qualcosa di struttura del codice come questo:

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;

In questo caso "Some_Variable" è globale per entrambi i compiti, ma non condiviso , nel senso Ada di essere adeguatamente protetto per coerenza, l'accesso simultaneo.

Anche se la variabile globale è in realtà referenziato da uno solo dei compiti, e quindi non c'è alcuna possibilità di eventuali problemi di concorrenza avviati che si verificano durante l'accesso, esso ancora non rende la variabile condiviso .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top