1.線程局部變量 和局部變量有什么區別?
之前看別人分析如何解決SimpleDateFormat 線程不安全的問題。
其中的一個方法是創建局部變量,需要用到SimpleDateFormat 的時候new 一個。
但是這種方法開銷太大,太浪費,不停的new和銷毀。建議是設置SimpleDateFormat 為線程局部變量,每個線程一個SimpleDateFormat。
剛開始不懂局部變量和線程局部變量有什么不一樣。線程不是也一樣是調用方法嗎,這樣在方法內創建的變量就是線程局部變量嗎?
后來知道一個線程是可以調用多個方法的。所以線程中的局部變量和方法內的局部變量的使用范圍不一樣。關鍵就在于線程可以穿越多個方法。這些方法就可以共享一個線程局部變量了。
同時一個疑惑是如果是使用線程池呢?線程回收的時候會清空其中的變量嗎?
新聞熱點
疑難解答