The workers in ThreadPoolExecutor is not really daemon
Suddenly… I found why. According to much more source code of ThreadPoolExecutor: # Workers are created as daemon threads. This is done to allow the interpreter # to exit when there are still idle threads in a ThreadPoolExecutor’s thread # pool (i.e. shutdown() was not called). However, allowing workers to die with # the interpreter … Read more