为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Python 中发送多个线程?

如何在 Python 中发送多个线程?

海绵宝宝撒 2022-04-27 13:07:05
从输入发布数据时,我希望能够接收内容列表。输入在一个文本文件中,该文件将在 python 中打开。为了加快进程,我想增加一次可以发送的线程数。我怎么能做到这一点,这是我在说什么的粗略想法:import requestsuserdata = open("data.txt", "r")usercodes = [x.strip() for x in userdata]for i in range(len(usercodes)):    thread_one = requests.post(url='https://test.com/input', params=usercodes[i])    thread_two = requests.post(url='https://test.com/input', params=usercodes[i+1])    thread_three = requests.post(url='https://test.com/input', params=usercodes[i+2])我希望所有线程同时运行,在这里程序将一个接一个地执行请求。
查看完整描述

3 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

import requests

from multiprocessing import Pool


def make_request(usercode):

    requests.post(url='https://test.com/input', params=usercode)


if __name__ == '__main__':

    userdata = open("data.txt", "r")

    usercodes = [x.strip() for x in userdata]


    with Pool(multiprocessing.cpu_count()) as p:

        print(p.map(make_request, usercodes))


    p.close()


查看完整回答
反对 回复 2022-04-27
?
临摹微笑

TA贡献1982条经验 获得超2个赞

与concurrent.futures.ThreadPoolExecutor:


from concurrent.futures import ThreadPoolExecutor

from functools import partial

import requests


userdata = open("data.txt", "r")

usercodes = (x.strip() for x in userdata)  # keep as generator


with ThreadPoolExecutor() as pool:

    pool.map(partial(requests.post, 'https://test.com/input'), usercodes)

    userdata.close()   # closing the input file


查看完整回答
反对 回复 2022-04-27
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

Async 绝对是你的朋友。


from gevent import joinall, spawn, monkey

gevent.monkey.patch_all()

import requests


userdata = open("data.txt", "r")

usercodes = [x.strip() for x in userdata]


send_url = 'https://test.com/input'

threads = []


def send(usercode):

   requests.post(url=send_url, params=usercode)


for code in usercodes:

    threads.append(spawn(send, code))


joinall(threads)


查看完整回答
反对 回复 2022-04-27
  • 3 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号