cari

Rumah  >  Soal Jawab  >  teks badan

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_lee2813 hari yang lalu968

membalas semua(3)saya akan balas

  • 大家讲道理

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

    pool = threadpool.ThreadPool(poolSize)
    poolSize digunakan untuk mengawal bilangan thread

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

    balas
    0
  • 迷茫

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

    Masalah anda mungkin terdapat terlalu banyak benang apabila terdapat banyak tugas. Untuk melihat masalah ini secara berbeza, gunakan satu utas, tetapkannya kepada 5 atau 10, dan kemudian buang tugasan itu ke dalam kumpulan utas Rujuk kepada penggunaan python ThreadPoolExecutor.

    balas
    0
  • 伊谢尔伦

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

    Adalah disyorkan untuk menggunakan pelbagai proses untuk mencuba untuk melihat sama ada fenomena tersekat juga akan berlaku!
    Cuba cari punca tersekat, bukannya terus mengawal bilangan benang untuk menyembunyikan masalah tersangkut!

    balas
    0
  • Batalbalas