Я видел приведенный ниже вопрос. Ответ заключался в том, чтобы вместо этого использовать семафоры. Это не ответило на одну из других проблем, указанных в вопросе, с которым я столкнулся.
У меня есть родительский поток, который устанавливает некоторый уникальный идентификатор для каждого нового запроса в InhertiedThreadLocal и отправляет 2 Runnable Tasks в ThreadPool, т.е. для 2 потоков. Для исходного запроса значения, установленные для InheritedThreadLocal в родительском потоке, правильно распространяются в ChildThread. Для следующих запросов дочерние потоки не получают последний InheritedThreadLocal, установленный родительским потоком, и используются старые значения в ChildThread.
Это связано с тем, что пул потоков повторно использует потоки, а InheritedThreadLocal копируется только при создании нового потока.
Теперь, как я могу распространить последнее значение InheritedThreadLocal от родительского к дочернему потоку в сценарии пула потоков. Есть ли выход для этого?