創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站設(shè)計、做網(wǎng)站與策劃設(shè)計,臺前網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:臺前等地區(qū)。臺前做網(wǎng)站價格咨詢:18982081108java 中ThreadLocal 的正確用法
用法一:在關(guān)聯(lián)數(shù)據(jù)類中創(chuàng)建private static ThreadLocalThreaLocal的JDK文檔中說明:ThreadLocal instances are typically private static fields in classes that wish to associate state with a thread。如果我們希望通過某個類將狀態(tài)(例如用戶ID、事務(wù)ID)與線程關(guān)聯(lián)起來,那么通常在這個類中定義private static類型的ThreadLocal 實例。
例如,在下面的類中,私有靜態(tài) ThreadLocal 實例(serialNum)為調(diào)用該類的靜態(tài) SerialNum.get() 方法的每個線程維護了一個“序列號”,該方法將返回當前線程的序列號。(線程的序列號是在第一次調(diào)用 SerialNum.get() 時分配的,并在后續(xù)調(diào)用中不會更改。)
public class SerialNum { // The next serial number to be assigned private static int nextSerialNum = 0; private static ThreadLocal serialNum = new ThreadLocal() { protected synchronized Object initialValue() { return new Integer(nextSerialNum++); } }; public static int get() { return ((Integer) (serialNum.get())).intValue(); } }