import threading
import time
from werkzeug.local import local, localstack
# local是實現執行緒隔離的方法物件, localstack是封裝了實現執行緒隔離方法的棧結構物件
classa:
b =1my_obj = local(
)my_obj.b =
1def
worker()
:# 新執行緒
my_obj.b =
2print
(my_obj.b)
new_t = threading.thread(target=worker, name=
'wang_thread'
)new_t.start(
)time.sleep(1)
# 主線程
print
(my_obj.b)
my_stack = localstack(
)my_stack.push(1)
defworker_1()
:print
(my_stack.top)
my_stack.push(2)
print
(my_stack.top)
new_w = threading.thread(target=worker_1, name=
'wang_1'
)new_w.start(
)time.sleep(1)
print
(my_stack.top)
# 主線程和子執行緒中的值是互不影響的
ThreadLocal實現執行緒間變數隔離
之前做android開發時曾看過threadlocal原始碼,但目前又忘記了。寫下篇文章,簡單回顧下吧 首先看下threadlocal的簡單例子 import org.apache.logging.log4j.logmanager import org.apache.logging.log4j.lo...
ThreadLocal是怎麼實現執行緒隔離的
案例 public static void main string args cc1 start new thread new runnable cc2 start 輸出 cc1 2 cc2 null threadlocal的set t t 方法原始碼 public void set t value...
Flask中的執行緒隔離原理
python因為gil 全域性直譯器鎖 的原因,本身實現的多執行緒就是偽多執行緒,同一時間只能有乙個cpu核執行乙個python應用,這裡就有人覺得python的多執行緒沒有用。這裡可以這樣理解 其實應用分為兩種,一種是cpu運算密集的應用,一種是io密集的應用,顧名思義,前者是比較依賴cpu資源,...