2017-03-10 5 views
0

スレッドの次のコードを実行しようとしています。スレッドからの復帰を伴うPython 3のマルチスレッドが並列実行されていません

import Queue 
import threading 

def get_items(url): 
    print(url) 
    #Do some stuff with print here 
    return url.split() 

q = Queue.Queue() 
urls = [LIST OF URLS] 

for u in urls[:10]: 
    t = threading.Thread(target=get_items, args=(q, u)) 
    t.daemon = True 
    t.start() 
    t.join() 

これはスレッドを並列に実行する必要がありますが、それは順次実行しています。次に、スレッドのreturn文の値をリストに追加する方法は?

答えて

0

変更を行ったときに自分のコードが正常に実行されました。

import Queue 
import threading 

def get_items(q, url): 
    print(url) 
    #Do some stuff with print here 
    q.put(url.split()) 

q = Queue.Queue() 
urls = [LIST OF URLS] 

for u in urls[:10]: 
    t = threading.Thread(target=get_items, args=(q, u)) 
    t.daemon = True 
    t.start() 
    th.append(t) 

for t in th: 
    t.join() 

print(q.get()) 
関連する問題