ThreadLocal原理分析

2022-06-14 13:54:11 字數 617 閱讀 3463

需求:如果我們引入乙個全域性變數,但是他的值在每個執行緒需要互相不影響。

解決辦法1:可以根據執行緒的次數new 幾次實體類 ,然後分別裝進每個執行緒中,但是如果執行緒數量很大並且不確定,這個方法不符合實際。

解決辦法2:將實體類的變數設定為threadlocal型別

package com.thread.test;

class local

};public void set()

public integer get()

}class threadtest implements runnable

@override

public void run()

}}public class main

}

set方法原始碼:

public void set(t value)
get方法原始碼:

public t get() 

}return setinitialvalue();

}

ThreadLocal 的原理分析

threadlocal是乙個關於建立執行緒區域性變數的類。對於 threadlocal 的原理分析,我們從 android 的looper類開始分析,我們知道 looper.mylooper 會返回當前 thread 的 looper。我們就來看看 mylooper 方法為什麼可以返回當前執行緒的 ...

ThreadLocal原理探尋

筆者今天趁著專案空隙,學習了下threadlocal這個類,探尋了下多執行緒下如何實現執行緒安全的原理。分享下 package com.suning.sample.transcation public class threadtest public static void main string a...

ThreadLocal原理詳解

threadlocal稱為執行緒本地變數,其為變數在每個執行緒中都建立了乙個副本,每個執行緒都訪問和修改本執行緒中變數的副本。應用示例 可以看出,為每個執行緒分配乙個變數副本的工作並不是由threadlocal實現的,需要在應用層面實現,threadlocal只是提供乙個容器。如果在應用上為每個執行...