python3.x - python3.5怎样控制线程的数量呢?
ringa_lee
ringa_lee 2017-04-17 17:57:54
0
3
992

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_lee
ringa_lee

ringa_lee

répondre à tous(3)
大家讲道理

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()
迷茫

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.

伊谢尔伦

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é !

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal