# create the worker processes
spawn task($barrier, $_) for 1..5;
####
MCE::Simple::_reap_joinable();
do { MCE::Simple::_async_i('', \&task, $barrier, $_) } for 1..5;
####
use strict;
use warnings;
use MCE;
use MCE::Barrier;
use Time::HiRes qw(time);
my $num_workers = 4000;
my $barrier = MCE::Barrier->new($num_workers);
my $start = time();
MCE->new(
max_workers => $num_workers,
user_func => sub {
my $id = MCE->wid;
for (1..400) {
MCE->say("$_: $id");
$barrier->wait;
}
}
)->run();
printf {*STDERR} "\nduration: %0.3f\n\n", time() - $start;