Python 多線程
單線程寫完 希望能學習多線程
GIL 保護數據安全 線程必須拿到GIL 才能執行, 沒拿到就不能CPU執行
threading.active_count(). 用來查看目前有多少個線程
threading.enumerate(). 目前使用線程的資訊
threading.current_thread().name 可以用來查看你在哪一個執行緒當中
.start() 執行你的線程
.join() 字符串方法,返回一個字符串
from threading import local , Thread import time tt = local() def task(arg): global tt tt.value= arg print(tt) print(tt.value) for i in range(10): t= Thread(target=task, args=(i,)) t.start()
from threading import get_ident, Thread
import time
storage = {}
def set(k,v):
ident = get_ident()
if ident in storage:
storage[ident][k]= v
else:
storage[ident]= {k:v}
def get(k):
idnet = get_ident()
return storage[idnet][k]
def task(arg):
set('val',arg)
print(storage)
time.sleep(2)
v = get('val')
print(v)
for i in range(10):
t = Thread(target=task,args=(i,))
t.start()