In Python 3.6, the docs for ThreadPoolExecutor mentions the following line: initializer is an optional callable that is called at the start of each worker thread; initargs is a tuple of arguments passed to the initializer. Should initializer raise an exception, all currently pending jobs will raise a BrokenThreadPool, as well any attempt to submit more jobs to the pool. But, from my experiment in Python 3.6 and 3.7, I have observed that `initializer` and `initargs` were introduced in Python 3.7.
Thanks for the report. You are correct. The parameters were introduced in in 3.7. It seems that this backported by mistake with PR 10958 where minor grammar was fixed with 40a61da40d252626f8b9ff524d76c1f0ccb3a4f7 but backporting caused the whole paragraph to be added to 3.6. 3.6 is in security fixes only mode. So I am not sure about the fix being merged. I am adding Ned to take a call on this.