threadLocal類主要是用來維持線程封閉性。線程封閉就是就對象封閉在一個線程內,以保持共享數據的安全性。threadLocal可以使線程中的值和保存的值關聯。將對象保存在ThreadLocal類裏面,threadlocal的set()和get()方法會爲每一個使用該對象的線程建立一個副本,保證每一個線程get到的都是當前執行線程set的最新值。如:java
private static ThreadLocal<Student> studentHolder = new ThreadLocal<Student>() { public Student initialValue() { return new Student("blancat"); } }; public static Student getStudent() { return studentHolder.get(); }