The 2 are used for 2 different use cases.
terminate() Terminating will kill all the worker processes immediately as soon as it is called, and ongoing tasks are stopped.
close() Close will not allow new tasks to be added to the pool, and the submitted ones will continue to execute and finish off.
You would have to call either based on the specific use case that you have.