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

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

membalas semua(3)
大家讲道理

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

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.

伊谢尔伦

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!

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan