概要 ThreadPoolExecutorにはinitializerという便利そうなオプションがあります。でもリファレンスの説明があっさりしていて、挙動がよくわからなかったので調べました。 先に断っておくと、このオプションはPython3.7で追加されたもので、それ以前のバージョンでは存在しません。その場合の代替案も書いておくので参考にしてください。 はじめに とりあえず先に書いておくと、concurrent.futures.ThreadPoolExecutorは以下のように使えるものです。 import time import threading from concurrent.futures import ThreadPoolExecutor def job(t): print("in job:", t, int(time.time()) % 1000, threading.get_i