Why 'threadpool' was designed as `thread_local`?

When I loaded the so file and set the thread affinity in thread A and run the optimized model in different thread B, the affinity setting seems to no effect with the thread_local thread_pool. Is there any reason to desgin the ‘threadpool’ as thread_local?