按照网上图的来说是栈里 threadlocal 的强引用断开后,而这个线程一直存活的情况,value 不会释放 从而导致内存泄漏(这个理解没错吧)
ThreadLocal tl = new ThreadLocal();
tl.set(1)
do something;
//这边设置 null 断开强引用 应该会产生内存泄漏吧?
//但是实际开发 应该不会这么无聊 手动设置成 null 吧;
//所以 实际情况下 什么时候会产生内存泄漏 (排除这种 new ThreadLocal().set(1)的 骚操作)
tl = null;
System.gc();
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.