Author:
ksurent
Description: бажное распределение данных между потоками
Language: Perl
#!perl
use strict;
use warnings;
use Data::Dumper;
my $data_file = 't.txt';
my $threads_number = 5;
my $actions_per_thread = 10;
my $global_offset = 0;
my @threads_data = map {
my @res = get_lines($data_file, $actions_per_thread, $global_offset);
$global_offset += scalar @res;
$_ = @res ? \@res : undef
} 1..$threads_number;
print Dumper \@threads_data;
sub get_lines {
my($file, $amount, $offset) = @_;
my @retval;
open my $fh, $file or die $!;
my($current_offset, $read_lines) = (0, 0);
while(<$fh>) {
next if $offset && $current_offset++ != $offset;
last if $read_lines++ == $amount;
$offset = 0;
push @retval => $_
}
close $fh;
@retval
}
|
Recent pastes:
n4n (Plain Text)
n4n (Perl)
alexITmore (Delphi)
alexITmore (Delphi)
ksurent (Perl)
ksurent (Perl)
ksurent (SQL)
cra (Perl)
cra (C++)
ksurent (Perl)
n0xi0uzz (Bash)
ksurent (Perl)
ksurent (Perl)
ksurent (Perl)
biophreak (Perl)
ksurent (Perl)
Gum (C++)
n0xi0uzz (PHP)
|