python中的佇列與執行緒

2021-09-10 02:56:15 字數 952 閱讀 2759

**描述:

#1). 理論上多執行緒執行任務是不能獲取返回結果的, 因此需要乙個容器來儲存產生的資料;

2). 容器該如何選擇? list(棧, 佇列), tuple(元組是不可變的, 不可使用),

set(集合缺省會去重, 所以不選擇), dict

選擇佇列型別儲存(fifo===first input first output)

import threading

from mytimeit import timeit

from queue import queue

def job(li, queue):

queue.put(sum(li)) # 將任務的執行結果儲存到佇列中;

@timeit

def use_thread():

# 例項化乙個佇列, 用來儲存每個執行緒執行的結果

q = queue()

# q.get() -- 出隊

# q.put(value) -- 入隊

lis = [range(5), range(2,10), range(1000, 20000), range(3000, 10000)]

# create 5 threads

threads =

for li in lis:

t = threading.thread(target=job, args=(li, q))

t.start()

[thread.join() for thread in threads]

# 從佇列中拿出所有執行緒執行的結果;

results = [q.get() for li in lis]

print(results)

if __name__ == "__main__":

use_thread()

Python中的多執行緒與佇列

0x01 執行緒鎖 既然說到多執行緒,就會經常遇到多個執行緒共同操作乙個單元或空間的情況,對該單元進行修改 獲取等操作,為了避免各執行緒間的混亂操作,保證執行緒同步的正確性,很有必要引入執行緒鎖的概念。執行緒鎖,顧名思義,表示某一單元或空間只為某一線程所有,此時其他執行緒均無法進行操作,等待該執行緒...

python 執行緒佇列

1.先進先出 bin python encoding utf8 import queue 執行緒佇列 q queue.queue 模式 1.先進先出,2,後進先出,3.優先順序 q queue.queue 5 5 表示可以放5個資料 q.put 12 q.put hell q.put while 1...

python 執行緒佇列

佇列是一種資料結構,是資料安全的,資料安全的。佇列能幹的事情列表都能幹。列表是執行緒不安全的,所以可以說佇列是針對多執行緒出現的。資料結構是用來儲存資料用的,只不過各種資料結構的儲存方式不同。比如 集合 佇列 對映 列表 按索引值儲存 字典 按key值的雜湊表儲存 list.pop 按索引刪除 li...