How to close HighLevelClient in thread pool

Hi,I use the thread pool to batch query the data in the es cluster.It is performant and gives me good parallelization. However I am not able to figure out how to close the client. Actually, I do client.close() in child thread when I finish query. But, it dosen't work. Even though I used the client.close() , the sockets occupied by the client were still not released.what can I do to close the client in child thread?