Python Threading

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()

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

error: 不能copy
回到頂端