0
我已經使用共享的散列以下:IPC ::共享的共享
my $glue = 'data';
my %options = (
create => 1,
exclusive => 0,
mode => 0644,
destroy => 0,
);
tie %hash1, 'IPC::Shareable', $glue, { %options };
的%HASH1如上聲明,是在一個單一的perl文件,但它是由多個應用程序調用時,每個應用程序修改其散列自己的索引:
Application1 --> $hash1{app1}="alpha";
Application2 --> $hash1{app2}="betta";
...
因爲應用程序可能會或可能不會simultanously運行,會不會有一個數據的損失,如果應用1和應用2試圖同時改變哈希?
我做了如下測試.pl'my $ value = $ ARGV [0]; my $ i; while(1) if($ handle_mem - > shlock()) { print「現在已鎖定我\ n」; $ memAAA {$ value} = $ i ++; $ handle_mem - > shunlock(); } else print「$ i:共享資源被鎖定\ n」; } }' 我將文件在多個實例中運行時使用不同的ARGV值,並且我無法擊中單個「其他」條件的情況,這是否正確,系統速度太快?或者我錯過了什麼? – Diego
@Diego,是的,這是正確的。 – ikegami