各スレッドに一意のアイテムをキューからポップして同時に実行させる方法がわかりません。これが現在書かれている方法は、直線的に実行され、キューから同じ項目をポップすることによって2つのスレッドが実行されます。キューからユニークなアイテムをポップして複数のスレッドで使用する
どのようにしてループからユニークなアイテムをキューから各スレッドに渡すことができますか?
import sys
import subprocess
import threading
import Queue
def pinger(host):
subprocess.Popen(['ping', '-c 1', '-W 1', host])
ping_hosts = ['google.com', 'yahoo.com', 'disney.com', 'myspace.com','www.pingler.com', 'www.pingmylink.com',
'www.pingoat.net' ,'www.blogsearch.google.com' ,'pingmyblog.com', 'www.twingly.com', 'www.weblogs.com', 'auto-ping.com' ]
ping_hosts = [ 'google.com', 'yahoo.com', 'disney.com']
def Main():
q = Queue.Queue()
for item in ping_hosts:
q.put(item)
while q.qsize() != 0:
host = q.get()
t1 = threading.Thread(target=pinger, args=(host,)
t2 = threading.Thread(target=pinger, args=(host,)
t1.start()
t2.start()
t1.join()
t2.join()
print "Main Completed"
if __name__ == '__main__':
Main()
Nikita、すばらしい返答をいただきありがとうございます。これは本当にスレッドの動作を理解するのに役立ちました。 noobが理解できるように時間を割いてくれてありがとう! –
@MikeDevlin、問題はありません、幸運プログラミングとPythonを学ぶ! ) – Nikita