recherche

Maison  >  Questions et réponses  >  le corps du texte

python3.x - python3.5怎样控制线程的数量呢?

thread_list = []
for kw_do in exc_kw():

thread_list.append(Thread(target=zz_kw,args=(kw_do,)))

for thread in thread_list:

thread.start()

for thread in thread_list:

thread.join()

这样运行会卡死,请问怎样控制5个线程或者10个线程呢?

ringa_leeringa_lee2883 Il y a quelques jours998

répondre à tous(3)je répondrai

  • 大家讲道理

    大家讲道理2017-04-17 17:59:54

    pool = threadpool.ThreadPool(poolSize)
    poolSize est là pour contrôler le nombre de threads

    import threadpool
    import requests
    
    def get_url(url):
        r = requests.get(url)
        return url, r.status_code
    
    def print_result(request, result):
        print result
    
    urls = [
        'http://www.baidu.com',
        'http://www.jd.com',
        'http://www.taobao.com',
        'https://segmentfault.com',
        'http://www.baidu.com',
        'http://www.jd.com',
        'http://www.taobao.com',
        'https://segmentfault.com',
        'http://www.baidu.com',
        'http://www.jd.com',
        'http://www.taobao.com',
        'https://segmentfault.com'
    ]
    
    pool = threadpool.ThreadPool(5)
    
    for th in threadpool.makeRequests(get_url, urls, print_result):
        pool.putRequest(th)
    
    pool.wait()

    répondre
    0
  • 迷茫

    迷茫2017-04-17 17:59:54

    Votre problème est probablement qu'il y aura trop de fils de discussion lorsqu'il y aura beaucoup de tâches. Pour aborder ce problème différemment, utilisez un thread, définissez-le sur 5 ou 10, puis lancez la tâche dans le pool de threads. Reportez-vous à l'utilisation de python ThreadPoolExecutor.

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:59:54

    Il est recommandé d'utiliser plusieurs processus pour essayer de voir si le phénomène de blocage se produira également !
    Essayez de découvrir la cause du blocage, au lieu de contrôler immédiatement le nombre de fils de discussion pour masquer le problème bloqué !

    répondre
    0
  • Annulerrépondre