変数は1つのタスクでのみ使用されますが、問題は、CALLEDで共有できるかどうかです。
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の意味では共有されません。
グローバル変数が実際にタスクの1つだけによって参照されている場合でも、アクセス中に同時実行によって発生する問題が発生する可能性はありませんが、変数は共有されません。
于 2009-10-19T13:14:50.013 に答える