我正在处理一个简单的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);'...希望有帮助! :) –