ThreadPoolExecutor 多執行緒

2022-03-15 11:52:21 字數 937 閱讀 1475

from concurrent.futures import threadpoolexecutor,wait,all_completed

from queue import queue

myqueue = queue() # 佇列,用於儲存函式執行結果。多執行緒的問題之一:如何儲存函式執行的結果。

def thread_jobs(func, args,queue_):

'''多執行緒執行入口

:param func:函式名

:param args:引數元組

:param queue_: 佇列,用於儲存函式執行結果

:return:

'''threads =

executor = threadpoolexecutor(max_workers=10) # 10個執行緒

for arg in args:

temp_arg = (arg,queue_)

t = executor.submit(func, temp_arg)

wait(threads, return_when=all_completed)

result = list() # 用來彙總每個執行緒的執行結果

while not queue_.empty():

return result

target = list(range(1000))

# 最終要執行的方法

def myfunc(*args):

number = args[0][0]

queue_ = args[0][1]

print(number*2)

queue_.put(number*2)

result = thread_jobs(myfunc,target,queue_=myqueue)

print(result)

c 多線例項

using system using system.threading using system.text namespace controlthread 第二個執行緒正在執行,請輸入 s uspend,r esume,i nterrupt,or e xit.datetime.now.tostrin...

CLLocationManager在多執行緒下使用

似乎定位的返回 呼叫 只能有主線程來呼叫,並且這個物件還必須是在主線程建立的。做過以下實驗 1.子執行緒中 self.locationmanager cllocationmanager alloc init autorelease locationmanager.delegate self loca...

ThreadPoolExecutor使用小結

記錄一下那幾個引數的理解,網上說了亂七八糟,詳細看參考文件,很詳細很明白,沒什麼好說的。corepoolsize,maximumpoolsize,keepalivetime keepalivetime workqueue queue blocksize 執行執行緒後,會判斷數量是否超出corepoo...