我正在處理一個簡單的perl多線程用例:一個線程寫入文件,另一個線程寫尾文件。這裏是代碼:perl:多線程寫入和尾部文件
use strict; use warnings; use threads; use File::Tail; my $file = 'data.txt'; sub tail_file{ my $file=File::Tail->new($file); while (defined(my $line=$file->read)) { print "$line"; } } sub write_file{ open (MYFILE, ">> $file"); print MYFILE scalar localtime . " A data.\n"; close (MYFILE); print 'write done!'; } my $t_tail = threads->new(\&tail_file); $t_tail->join(); my $t_write = threads->new(\&write_file); $t_write->join();
運行時,該程序卡在控制檯上。
在文檔中未找到如何更改間隔(即初始秒數)。我們有沒有可能做這個改變的機會?順便說一句,這是正確的,它需要很長的文件:尾巴初始化尾巴。我一直想知道爲什麼...... :-) – Paul
從文檔看來,您可以在調用'new()'時爲這些(和其他)參數傳遞自定義值。例如:'$ file = File :: Tail-> new(name => $ name,maxinterval => 300);'...希望有幫助! :) –