Because of the way Perl implements threads, you will usually use a lot more memory with threads than with forking processes. This is because Perl copies all of the data structures in the interpreter every time you create a new thread, while the OS handles copy-on-write for forked processes. In short, threads have easier tools for communication between them, but tend to use a lot more memory.