1、threadlocal的使用
threadlocal的確是資料的隔離,但是並非資料的複製,而是在每乙個執行緒中建立乙個新的資料物件,然後每乙個執行緒使用的是不一樣的。
public
class
threadlocaltest};
public integer getnextstr()
public
static
void
main
(string[
] args)
private
static
class
mythread
extends
thread
@override
public
void
run()}
}}
thread-2:
:::1
thread-1:
:::1
thread-1:
:::2
thread-1:
:::3
thread-2:
:::2
thread-2:
:::3
thread-0:
:::1
thread-0:
:::2
thread-0:
:::3
這裡可以看出,在每乙個執行緒的確是沒有互相影響2、threadlocal的資料結構
threadlocal的資料結構如下:
static
class
threadlocalmap
}
threadlocal內部有乙個threadlocalmap,可以從名字看出,它是乙個hashmap,我們在使用的鍵值對多少儲存在這個map裡面。讓我們來看一下,threadlocal的set()方法:
public
void
set(t value)
從上面的**可以看出,這裡的方法是以當前執行緒為key,使用人員自定義的value為值,然後放置在threadlocal的內部threadlocalmap中。 執行緒 類ThreadLocal的使用
類threadlocal主要解決的就是每個執行緒繫結自己的值,可以將threadlocal模擬喻成全域性存放資料的盒子,盒子中可以儲存每個執行緒的私有資料。public class run system.out.println tl.get system.out.println tl.get pub...
執行緒ThreadLocal類
threadlocal 在很多地方叫做本地變數,在有些地方叫做執行緒本地儲存。threadlocal 在每個執行緒中為每個變數都建立了乙個副本,每個執行緒可以訪問自己內部的副本變數,而不會對其它執行緒的副本變數造成影響。如果看不懂沒關係,下面會解釋各個函式的意思。public t get publi...
多執行緒 ThreadLocal
目錄 一 threadlocal 概述 1.1 threadlocal 是什麼 1.2 threadlocal 的作用 二 threadlocal 的使用和原始碼分析 2.1 threadlocal 如何使用 2.1.1 常見方法 2.1.2 使用示例 2.2 threadlocal 原始碼分析 2...