反駁:Threadlocal存在記憶體洩露
阿新 • • 發佈:2019-01-07
最近看到網上的一篇文章,分析說明ThreadLocal是如何記憶體洩露的. 但我不這麼認為. ThreadLocal設計的很好,根本不存在記憶體洩露問題. 本文就結合圖和程式碼的例子來驗證我的看法.
網上的程式碼例子普遍是這樣子的:
01 |
public class Test
{ |
02 |
public static void main(String[]
args) throws InterruptedException
{ |
03 |
ThreadLocal
tl = new MyThreadLocal(); |
04 |
tl.set( new My50MB()); |
05 |
06 |
tl= null ; |
07 |
08 |
System.out.println( "Full
GC" ); |
09 |
System.gc(); |
10 |
} |
11 |
12 |
public static class MyThreadLocal extends ThreadLocal
{ |
13 |
private byte []
a = new byte [ 1024
|