[PJRT:CPU] We observe that in many situations, especially in the unit test environment, cpu clients won't be destroyed when the python process terminates, while there may still have pending tasks in the thread pool. Add a mechanism to make sure all thread pools will always be cleaned up.
[PJRT:CPU] We observe that in many situations, especially in the unit test environment, cpu clients won't be destroyed when the python process terminates, while there may still have pending tasks in the thread pool. Add a mechanism to make sure all thread pools will always be cleaned up.
