Python中實現執行緒隔離

2021-09-27 02:34:11 字數 835 閱讀 9785

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資源,...