关于使用TreadLocal解决线上问题的疑问?
来源:14-9 缓存在高并发场景中的生产问题分享

HenceForward
2024-09-06
有个疑问,为什么要用线程本地变量,直接方法调用的末尾清除缓存不就行了吗?
首先本地缓存设置过期时间,其次在方法的结尾手动清除本地缓存,是否也可以避免Full GC?
写回答
1回答
-
甲蛙
2024-09-06
你说的在方法的结尾清除,其实这个就是线程本地变量的功能,在线程结束后,线程本地变量也释放了。你这个方法会有问题,缓存本质上是多线程共享,才有缓存的意义,所以在结尾清除本地缓存,就可能影响其它线程的读取。如果你做成每个线程各自存取缓存,那这个就是线程本地变量的功能了。
022024-09-23
相似问题