threads
Perl has used a couple of different threading models in its time.
There were the old v5.005 threads through the Threads module, but those were removed in v5.10. The second way,
introduced in v5.8, are “interpreter threads” (or “ithreads”) that give
each new thread its own Perl interpreter. If you know about threads from
some other language, forget all that for Perl’s threads because they are
the same in name only.
To use threads, you need a
perl compiled with threads support. You
can check the output of perl –V and
look for something like USE_ITHREADS in
the compile-time options. You can also check the Config module, which lets you inspect the compile-time options
inside your program:
use Config;
$Config{useithreads}
or die("Recompile Perl with threads to run this program.");Many perls distributed with operating systems have a thread-enabled Perl already since it’s easier to turn it on for everyone than have it off for everyone, making a few people complain (which means you might squeeze extra performance out of your Perl binary by recompiling it without thread support).
Here’s a short example that starts some threads, detaches them, and
starts a final thread and joins it. The program doesn’t wait for the
detached threads to finish, but it will wait for the joined thread to
complete. You can create threads with a code reference or a subroutine
name, or using the async function
from threads:
#!/usr/bin/perl use v5.10; use Config; $Config{useithreads} || die "You need thread support ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access