最大线程数的python多线程队列

时间:2019-04-14 12:07:02

标签: python multithreading

我在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()`

0 个答案:

没有答案