java在一个父线程中启动了一个子线程
但是运行过程中父线程的参数没有传递到子线程
原因:threadLocal不支持父子线程传递
解决:使用TransmittableThreadLocal
--有问题的代码
private static final ThreadLocal<EventRuntimeContext> FLOW_CONTEXT_THREAD_LOCAL = new ThreadLocal<>();
--修复后的代码 private static final ThreadLocal<EventRuntimeContext> FLOW_CONTEXT_THREAD_LOCAL = new TransmittableThreadLocal<>();TransmittableThreadLocal还会在父线程clear()时去找子线程,然后子线程也清除掉
具体可以参考文档ThreadLocal父子间通信的四种解决方案 - 孙半仙人 - 博客园