多线程功能

时间:2018-01-10 22:38:34

标签: python multithreading python-3.x

我正在使用Python 3向我的API发送请求。

我读了一个文件,每行使用函数

lista = open('mylist.txt', 'r').readlines()
lista = [dab.replace('\n', '') for dab in lista]

for dab in lista:
    sdab = dab.split(':')
    login = sdab[0]
    senha = sdab[1]
    myfunction(login,senha)

myfunction只是向我的api发出请求。

是否有可能,例如,从文件中获取行数来制作线程并将每行的内容发送到函数?

1 个答案:

答案 0 :(得分:1)

是的,使用multiprocessing包非常简单。

您需要一个可以在dab中的每个lista上直接调用的函数,例如:

def dabify(dab):
    sdab = dab.split(':')
    login = sdab[0]
    senha = sdab[1]
    myfunction(login,senha)

然后,您可以使用多处理池在dabify的每个元素上调用lista

from multiprocessing import Pool
pool = Pool(processes=4) # specify number of processes
for result in pool.imap_unordered(dabify, lista):
    # do something with the result here if you want
    pass

请注意,不再保证调用API的顺序。