iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >重构多线程HTTP客户端请求的程序
  • 471
分享到

重构多线程HTTP客户端请求的程序

2024-04-05 00:04:54 471人浏览 泡泡鱼
摘要

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《重构多线程Http客户端请求的程序》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《重构多线程Http客户端请求的程序》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

问题内容

我正在阅读 Google places 包装器的文档,但它仅支持 google 附近搜索。这实际上并不是一个巨大的瓶颈。

我的脚本执行附近搜索以查找该区域的 place_id,然后继续执行地点详细信息查询以获取该特定 google 地图商家条目的所有数据。

这个 places details 查询是瓶颈所在,我希望能够得到一些关于我编写的脚本的反馈。

看起来它不是多线程的,但是当我将“线程数”从 1 增加到 40 时,我的示例脚本运行时间从 40 秒下降到 12 秒。

我必须进行大量的复制和粘贴以及反复试验才能使其正常工作。我非常感谢这里的帮助。

  1. 为什么当我将线程数增加到 40 时,运行速度会更快?
  2. 如何通过多线程加快速度?
package main

import (
    "sync"
    "bufio"
    "os"
    "fmt"
    "net/http"
    "time"
    "io/ioutil"
    "strings"
    "log"
    "crypto/tls"
    "googlemaps.GitHub.io/maps"
    "bytes"
    "encoding/JSON"
)

var threadCount = 40
var wg sync.WaitGroup

var api_key = "api_key"
var top_cities_gps = "./top_cities_gps"
var next_page_token = ""
var business_types = []string{"accounting", "art_gallery"}

var connector = &http.Transport{
    MaxIdleConns:       threadCount,
ring('\n')
      if err != nil {

          log.Fatalf("read file line error: %v", err)
          return
      }

      _ = line

            // alright! let's kick this up a notch, and start scraping!!! :D
            // looping all business types

            for i, s := range business_types {

                // now let's hit Google Places API for a NearbySearch!
                // 
                searchPlaces("", s, strings.TrimSpace(line))

        }
  }
}

func main() {
    GoGoogle()
}


解决方案


threadcount 命名错误。它仅用于设置 http 传输中的 maxidleconns。根据文档:

// MaxIdleConns controls the maximum number of idle (keep-alive)
 // connections across all hosts. Zero means no limit.

因此,当您将 threadcount 从 1 增加到 40 时,您就增加了保持活动连接的限制。从这个用法来看,将 threadcount 设置为 0 似乎会带来最佳结果。

我建议你完全摆脱 threadcount

本篇关于《重构多线程HTTP客户端请求的程序》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于golang的相关知识,请关注编程网公众号!

您可能感兴趣的文档:

--结束END--

本文标题: 重构多线程HTTP客户端请求的程序

本文链接: https://www.lsjlt.com/news/596212.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 重构多线程HTTP客户端请求的程序
    偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《重构多线程HTTP客户端请求的程序》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起...
    99+
    2024-04-05
  • 获取客户端HTTP请求头的方法有哪些
    本篇文章为大家展示了获取客户端HTTP请求头的方法有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。获取客户端发来的HTTP请求头中的内容可以使用如下方法:getDateHeader()getHe...
    99+
    2023-05-31
    http
  • ASP 中如何处理多个客户端同时请求的重定向?
    在ASP应用程序中,有时候需要将用户请求重定向到另一个页面或者网站。这个过程通常是通过向客户端发送一个HTTP重定向响应来实现的。然而,在多个客户端同时请求时,可能会出现一些问题,比如多个客户端同时请求同一个页面,但是只有一个客户端能够成...
    99+
    2023-07-03
    同步 重定向 并发
  • java 中怎么配置Socket多线程客户端
    java 中怎么配置Socket多线程客户端,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。static class Sender ...
    99+
    2023-06-17
  • Qt多线程TCP服务器客户端传输文件
    文章目录 TCP的理论知识TCP的特点:满足这些特点的规定 多线程的知识点优点缺点 创建工程TCP服务器TCP客户端界面布局总结 TCP的理论知识 TCP的特点: TCP是面向连...
    99+
    2023-09-07
    tcp/ip qt tcp
  • 构造 HTTP 请求的方式、HTTPS 的工作过程
    一、构造 HTTP 请求的方式: 基于 HTML / JS (客户端构造HTTP请求,最常见的 HTTP 客户端,就是浏览器) 基于 form 表单基于 ajax 基于 Java (这种方案是...
    99+
    2023-09-15
    服务器 http ajax https java
  • 客户端JavaScript的线程池设计详解
    目录1.介绍:2.准备工作:3.测试spark-md5是否正常工作:4.线程池设计5.spark-md5对文件进行md5编码6.大量文件进行MD5加密并使用线程池优化总结1.介绍: ...
    99+
    2024-04-02
  • Python并发编程队列与多线程最快发送http请求方式
    目录队列+多线程线程池协程 + aiohttpgrequests最后的话Python 并发编程有很多方法,多线程的标准库 threading,concurrency,协程 async...
    99+
    2024-04-02
  • python socket多线程实现客户端与服务器连接
    python socket多线程实现客户端与服务器连接,供大家参考,具体内容如下 之前因为一些作业需要完成一个服务器监听多个客户端的程序,于是就用python写了这样的程序。话不多说...
    99+
    2024-04-02
  • C++多线程实现TCP服务器端同时和多个客户端通信
    通讯建立后首先由服务器端发送消息,客户端接收消息;接着客户端发送消息,服务器端接收消息,实现交互发送消息。 服务器同时可以和多个客户端建立连接,进行交互; 在某次交互中,服务器端...
    99+
    2024-04-02
  • python 多用户在线的FTP程序
    要求:1、用户加密认证2、允许同时多用户登录3、每个用户有自己的家目录 ,且只能访问自己的家目录4、对用户进行磁盘配额,每个用户的可用空间不同5、允许用户在ftp server上随意切换目录6、允许用户查看当前目录下文件7、允许上传和下载文...
    99+
    2023-01-31
    在线 多用户 程序
  • Java 异步编程教程:如何在http请求中使用多线程实现异步编程?
    Java是一种面向对象的编程语言,具有很好的可移植性和可扩展性,在Web开发中广泛应用。然而,由于Web应用程序需要处理大量的http请求,因此必须采用异步编程技术,以确保Web应用程序的性能和可扩展性。 在本文中,我们将介绍如何使用Ja...
    99+
    2023-06-25
    异步编程 教程 http
  • 客户端JavaScript线程池设计的示例分析
    这篇“客户端JavaScript线程池设计的示例分析”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“客户端JavaScript线程池设计的示例分析”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望...
    99+
    2023-06-28
  • 微信小程序中如何管理http请求的session
    这篇文章给大家分享的是有关微信小程序中如何管理http请求的session的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。微信小程序 http请求的session管理作为一个开发J...
    99+
    2024-04-02
  • Kafka有哪些常见的客户端应用程序
    Kafka有许多常见的客户端应用程序,其中一些包括: Apache Kafka工具集:Apache Kafka本身提供了一些工具...
    99+
    2024-03-11
    Kafka
  • 创建具有重复字段的 grpc 客户端请求时内存地址无效
    Golang不知道大家是否熟悉?今天我将给大家介绍《创建具有重复字段的 grpc 客户端请求时内存地址无效》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希...
    99+
    2024-04-05
  • python多线程请求带参数的多个接口问题
    目录多线程请求带参数的多个接口如何用python请求接口总结多线程请求带参数的多个接口 对于进程/线程/携程/异步的内容 有时间准备写写了 真的一直用for去循环慢到怀疑人生 需要运...
    99+
    2023-03-14
    python多线程 python请求带参数 python多个接口
  • Jmeter对线程组中的HTTP请求运行的机制是什么
    这篇文章主要介绍“Jmeter对线程组中的HTTP请求运行的机制是什么”,在日常操作中,相信很多人在Jmeter对线程组中的HTTP请求运行的机制是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Jmete...
    99+
    2023-06-02
  • HttpWebRequest多线程性能问题,请求超时的错误
    转自:http://hi.baidu.com/ju_feng/blog/item/b1c41dbf09ad9e0119d81fb0.html通过Netstat –abn | find “:443” 如果有两个Time_Wait 和CLOSE...
    99+
    2023-06-04
  • SpringBoot多线程进行异步请求的处理方式
    目录SpringBoot多线程进行异步请求的处理第一步:编写配置类第二步:对方法使用注解标注为使用多线程进行处理SpringBoot请求线程优化使用Callable来实现1、异步调用...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作