Closed qq31715879 closed 5 years ago
- TtlRunnable A和B共同使用一个TransmittableThreadLocal
- TtlRunnable A run执行最后一行sleep
- TtlRunnable B run执行完毕 -> 释放TransmittableThreadLocal holder,holder中的map size == 0
- TtlRunnable A开始进入restore,但是进入方法之前,holder中的map值被恢复了,holder还是有值 怎么做到的?
你的信息说明 还不清楚。比如
『TtlRunnable A开始进入restore,但是进入方法之前,holder中的map值被恢复了』
不清楚你说的是,恢复 成什么了?你期望的恢复 成什么?
holder
本身是一个InheritableThreadLocal
。可以学习了解一下ThreadLocal
/InheritableThreadLocal
的内容。 :)TransmittableThreadLocal
的系统流程、查看代码实现。感谢提醒, 想起来了 holder本身是一个Threadlocal所以线程b释放的是自己的threadlocal 所以有值
感谢大佬回复
------------------ 原始邮件 ------------------ 发件人: "李鼎(哲良)"notifications@github.com; 发送时间: 2019年7月10日(星期三) 晚上8:38 收件人: "alibaba/transmittable-thread-local"transmittable-thread-local@noreply.github.com; 抄送: "kael"31715879@qq.com;"Mention"mention@noreply.github.com; 主题: Re: [alibaba/transmittable-thread-local] TtlRunnable A run执行最后一行sleep, TtlRunnable B执行完毕 释放TransmittableThread Local holder, TtlRunnable A进入restore holder还是有值怎么做到的 (#142)
TtlRunnable A和B共同使用一个TransmittableThreadLocal
TtlRunnable A run执行最后一行sleep
TtlRunnable B run执行完毕 -> 释放TransmittableThreadLocal holder,holder中的map size == 0
TtlRunnable A开始进入restore,但是进入方法之前,holder中的map值被恢复了,holder还是有值 怎么做到的?
你的信息说明 还不清楚。比如
『TtlRunnable A开始进入restore,但是进入方法之前,holder中的map值被恢复了』
不清楚你说的是,恢复 成什么了?你期望的恢复 成什么?
@qq31715879 推荐:
要注意的是holder本身是一个InheritableThreadLocal。
文档:所有TTL值的抓取、回放和恢复方法(即CRR操作)
可以看看『小伙伴同学们写的 设计实现解析文章(写得都很好! )❤️ #123』
推荐 梳理一下TransmittableThreadLocal的系统流程、查看代码实现。
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
源码学习提问