use v5.030;
use threads;
use threads::shared;
use PDL;
BEGIN { $PDL::no_clone_skip_warning = 1; }
my $lock : shared = 0;
for my $tid (1..64) {
threads->create(sub {
my $output = "";
for (1..500000) {
# my $r = CORE::rand();
my $r = PDL->random;
$output .= "$r\n";
}
lock $lock;
print $output;
});
}
$_->join for threads->list;
####
$ perl test6.pl | LC_ALL=C sort -u | wc -l
32000000
$ perl test6.pl | LC_ALL=C sort -u | wc -l
32000000
$ perl test6.pl | LC_ALL=C sort -u | wc -l
32000000
##
##
$ perl test6.pl | LC_ALL=C sort -u | wc -l
25105304
$ perl test6.pl | LC_ALL=C sort -u | wc -l
25304231
$ perl test6.pl | LC_ALL=C sort -u | wc -l
25290392
##
##
perl test6.pl | LC_ALL=C mcesort -j6 -u | wc -l