alibaba / transmittable-thread-local

📌 a missing Java std lib(simple & 0-dependency) for framework/middleware, provide an enhanced InheritableThreadLocal that transmits values between threads even using thread pooling components.
https://github.com/alibaba/transmittable-thread-local
Apache License 2.0
7.62k stars 1.69k forks source link

在Java21的虚拟线程中不使用`TTL`会有问题吗? #599

Closed bigbaldy1128 closed 8 months ago

bigbaldy1128 commented 8 months ago

如题,不知道这个TransmittableThreadLocal在虚拟线程中使用会不会出问题,我自己测试了各种场景目前都没问题,但是还是有点担心。而且我发现我不用TtlExecutors.getTtlExecutorService去包装ExecutorService,使用起来也是好的,这个是否正常,希望有大佬能解答!

oldratlee commented 8 months ago

...不用...,使用起来也是好的,...

@bigbaldy1128 请做好测试与分析评估。如果你确定(在你的场景中)不用是OK的,则无需使用。😄


虚拟线程的设计实现,在用户使用和功能上,期望虚拟线程和线程是一样的(透明的)。 (其它方面有的差异,可以调研以了解)

即基于ThreadLocal的上下文传递,因为如 在线程池中线程复用、嵌套任务执行 所带来的问题,虚拟线程也一样存在。 具体可以调研了解TTL的资料,如要解决的问题/场景、设计与实现的机制。@bigbaldy1128


TTL支持Java 21/虚拟线程;如有Bug可以提 issue。💕