1. A method of allocating memory in a multithreaded computing environment in which a plurality of threads run in parallel within a process, each thread having access to a system memory, the method comprising: using a memory manager system routine that is used in common by all of the threads and manages the system memory that is accessible to all of the threads for establishing a plurality of memory pools in the system memory, wherein each memory pool consists of memory blocks and has a separate locking mechanism associated therewith; mapping each thread to one of said plurality of memory pools; and for each thread, dynamically allocating user memory blocks from the associated memory pool.