Ich habe eine gemeinsame Hash Folgendes mit:IPC :: Gemeinsam nutzbare teilen
my $glue = 'data';
my %options = (
create => 1,
exclusive => 0,
mode => 0644,
destroy => 0,
);
tie %hash1, 'IPC::Shareable', $glue, { %options };
Das% hash1 erklärt, wie oben, ist in einer einzigen Datei Perl, aber es von mehreren Anwendungen aufgerufen wird, ändert jede Anwendung ihres eigener Index des Hash:
Application1 --> $hash1{app1}="alpha";
Application2 --> $hash1{app2}="betta";
...
gegeben, dass Anwendungen oder nicht simultan ausgeführt werden können, werden es ein Datenverlust, wenn application1 und Application2 versuchen, den Hash gleichzeitig zu ändern?
ich den folgenden Test gemacht .pl 'Mein $ Wert = $ ARGV [0]; mein $ i; while (1) { if ($ handle_mem -> shlock()) { print "Es ist jetzt für mich gesperrt \ n"; $ memAAA {$ Wert} = $ i ++; $ handle_mem -> shunlock(); } sonst { print "$ i: Die freigegebene Ressource ist gesperrt \ n"; } } ' Ich hatte die Datei in mehreren Instanzen mit unterschiedlichen ARGV-Werte ausgeführt und ich konnte nicht einen einzigen Fall der" sonst "Bedingung treffen, ist das korrekt und das System ist einfach zu schnell? oder verpasse ich etwas? – Diego
@Diego, Ja, das ist richtig. – ikegami