变量仅用于 1 个任务,但问题是:它可以被 CALLED 共享吗?
问问题
93 次
1 回答
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 意义上没有共享,即被适当地保护以实现一致的并发访问。
即使全局变量实际上只被其中一个任务引用,因此在访问它时不会发生任何并发引发的问题,它仍然不会使变量shared。
于 2009-10-19T13:14:50.013 回答