摘要 |
A method for managing a memory pool containing memory blocks between a producer thread and a consumer thread running in parallel within a process is disclosed. The method places free memory blocks in a first group in the memory pool and allocates on demand a memory block from the first group to the producer thread. The allocated memory block is shared between the producer thread and the consumer thread. Once the allocated memory block is no longer required, the consumer thread deallocates the allocated memory block by placing the deallocated memory block in a second group of the memory pool. Deallocated memory blocks in the second group are moved to a third group only when the third group is empty. Memory blocks in the third group are moved to the first group only when the third group is non-empty. A locking mechanism is not required in such a multi-threaded environment.
|