我在python中遇到多线程问题,我想同时运行10个线程,而这个线程要等到它们完成工作为止。
例如,我有100个网址,我希望将其作为参数传递给程序,并最多抛出10个线程。
import os ,sys, string
import Queue
import threading
import MySQLdb
import time
db=MySQLdb.connect(host="localhost",user="root",passwd="***",db="****")
cur1=db.cursor()
q = Queue.Queue()
def worker(queue):
queue_full = True
while queue_full:
try:
url= queue.get(False)
os.system(""" python my_programme.py -u """.format(url))
except Queue.Empty:
queue_full = False
i = 0
while True:
my_url=("SELECT url FROM url ")
cur1.execute(my_url)
results=cur1.fetchall()
for row in results:
url = row[0]
url=str(url)
#print url
q.put(url)
t= threading.Thread(target=worker, args = (q,))
t.start()
t.join()`