In cases of forked processes, you may see results for memory usage which are inflated. This is due to the fact that forking causes memory to be marked copy on write on many systems. Each process reports all the memory that it is using, even if it is currently shared.
I doubt that changing to threading will reduce your memory usage. If anything, based on the implementation details of ithreads, chances are it will increase memory usage.
The only real advantage of using threads, is you can easily share and return values between threads, with "use shared". Otherwise forking is
probably faster and more memory efficient.