I wrote these posts
Mar 28, 2014
: MySQL not releasing memoryApr 24, 2012
: How costly is opening and closing of a DB connection?May 24, 2011
: What are user connections - when are the created and destroyed?
and discussed the many buffers that are allocated for each connection. They are part of RAM and not encapsulated within the cache. Since the buffers are set based whether it is defined in my.cnf
or defaulted if it is not, it would not make sense that the memory is released if a thread needs to be reused and will set its buffers to the same sizes again. As I mentioned in How costly is opening and closing of a DB connection? it would be an expensive operation to deallocate and then immediately allocate the buffers.
Therefore, with regard to your actual questions
Does it mean thread occupied the memory even system is using threads from cache?
A cache in thread still use memory?
The answer to both would be Yes