If func creates lots objects and appends them to a list, and runs over and over, pool.map(func...) will eventually eat up all memories. Cleaning the list at the end of func does not help. One can reproduce by running the attached file. By contrast, after replacing ThreadPool with the theading module (see the commented out lines), memory usage will not grow continuously. By the way, I used what's in Debian stretch, i.e. python 2.7.11 and 3.5.1.
I confirm that 3.5.3 and 2.7.13 have fixed this problem. Now the memory usage will stop growing after using 28% of physical memory. In other words, this problem can not be reproduced with the latest version of python, Thanks. It's OK for me to set it to any of out of date, fixed, or closed.