#!/usr/bin/Perl use 5.008; use strict; use threads; use threads::shared; $| = 1; my @threads; foreach (1 .. 20) { push @threads, threads->new('StartTest'); # threads->new('StartTest')->detach; threads->yield; } while (my $thread = shift @threads) { $thread->join; } sleep 10; print "\n", "All threads done\n"; sub StartTest { my $self = threads->self; my @m = (1 .. 99999); print "Thread ", $self->tid, " started\n"; sleep ($self->tid + 5); print "Thread ", $self->tid, " ending\n"; } 1; __END__