# which threading model do we want? use threads; #use forks; $num_threads = shift(@ARGV) || 10; foreach (0..$num_threads-1) { # create a new thread push(@threads,threads->new(\&thread_sub)); } foreach $thread (@threads) { # wait for threads to finish $thread->join(); } printf "Orig thread done\n"; sub thread_sub { printf "Thread %d started\n",threads->tid(); } #### threads.pm: Major (requiring I/O) page faults: 387.00 Minor (reclaiming a frame) page faults: 1151.20 forks.pm: Major (requiring I/O) page faults: 470.00 Minor (reclaiming a frame) page faults: 4591.20