zoukankan      html  css  js  c++  java
  • golang 线程同步简单做法

    package crawler
    
    import (
    	"fmt"
    	"math"
    	"sync"
    )
    
    // 上交所爬虫
    type Sse struct {
    	/*
    		WaitGroup:同步等待组
    		可以使用Add(),设置等待组中要 执行的子goroutine的数量,
    		使用wait(),让主程序处于等待状态。直到等待组中子程序执行完毕。解除阻塞		​
    		子gorotuine对应的函数中。wg.Done(),用于让等待组中的子程序的数量减1
    	*/
    	wg sync.WaitGroup
    }
    
    // CrawlerStocks 爬取上交所股票列表
    func (c *Sse) CrawlerStocks() {
    
    	ssesl := SseStockList{}
    	count := ssesl.GetStockCount()
    	var pagesize = 100
    	var pagecount = int(math.Ceil(float64(count) / float64(pagesize)))
    
    	c.wg.Add(pagecount)
    
    	for i := 0; i < pagecount; i++ {
    		go func(index int) {
    			fmt.Println("正在拉取第", index, "页,一共", pagecount, "页")
    			ssesl.GetQueryData(index, pagesize)
    
    			c.wg.Done()
    		}(i + 1)
    	}
    
    	c.wg.Wait()
    
    	fmt.Println("数据已拉取完毕喽")
    }
    

     

    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=1&pageHelp.pageNo=1&pageHelp.pageSize=1&pageHelp.endPage=11&_=1626941637552685000
    正在拉取第 17 页,一共 17 页
    正在拉取第 12 页,一共 17 页
    正在拉取第 1 页,一共 17 页
    正在拉取第 9 页,一共 17 页
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=17&pageHelp.pageNo=17&pageHelp.pageSize=100&pageHelp.endPage=171&_=1626941637647913000
    正在拉取第 2 页,一共 17 页
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=9&pageHelp.pageNo=9&pageHelp.pageSize=100&pageHelp.endPage=91&_=1626941637647931000
    正在拉取第 3 页,一共 17 页
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=3&pageHelp.pageNo=3&pageHelp.pageSize=100&pageHelp.endPage=31&_=1626941637647951000
    正在拉取第 10 页,一共 17 页
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=10&pageHelp.pageNo=10&pageHelp.pageSize=100&pageHelp.endPage=101&_=1626941637648266000
    正在拉取第 13 页,一共 17 页
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=2&pageHelp.pageNo=2&pageHelp.pageSize=100&pageHelp.endPage=21&_=1626941637647939000
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=13&pageHelp.pageNo=13&pageHelp.pageSize=100&pageHelp.endPage=131&_=1626941637648341000
    正在拉取第 14 页,一共 17 页
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=12&pageHelp.pageNo=12&pageHelp.pageSize=100&pageHelp.endPage=121&_=1626941637647982000
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=1&pageHelp.pageNo=1&pageHelp.pageSize=100&pageHelp.endPage=11&_=1626941637647919000
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=14&pageHelp.pageNo=14&pageHelp.pageSize=100&pageHelp.endPage=141&_=1626941637648629000
    正在拉取第 15 页,一共 17 页
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=15&pageHelp.pageNo=15&pageHelp.pageSize=100&pageHelp.endPage=151&_=1626941637648746000
    正在拉取第 16 页,一共 17 页
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=16&pageHelp.pageNo=16&pageHelp.pageSize=100&pageHelp.endPage=161&_=1626941637648838000
    正在拉取第 7 页,一共 17 页
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=7&pageHelp.pageNo=7&pageHelp.pageSize=100&pageHelp.endPage=71&_=1626941637648960000
    正在拉取第 8 页,一共 17 页
    2021/正在拉取第 5 页,一共 17 页
    正在拉取第 4 页,一共 17 页
    正在拉取第 11 页,一共 17 页
    正在拉取第 6 页,一共 17 页
    07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=8&pageHelp.pageNo=8&pageHelp.pageSize=100&pageHelp.endPage=81&_=1626941637649021000
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=5&pageHelp.pageNo=5&pageHelp.pageSize=100&pageHelp.endPage=51&_=1626941637649186000
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=4&pageHelp.pageNo=4&pageHelp.pageSize=100&pageHelp.endPage=41&_=1626941637649204000
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=11&pageHelp.pageNo=11&pageHelp.pageSize=100&pageHelp.endPage=111&_=1626941637649216000
    2021/07/22 16:13:57 爬取地址是: http://query.sse.com.cn/security/stock/getStockListData2.do?isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=6&pageHelp.pageNo=6&pageHelp.pageSize=100&pageHelp.endPage=61&_=1626941637649228000
    数据已拉取完毕喽
    

      

  • 相关阅读:
    7.Pod控制器—Job&CronJob
    6.Pod控制器—DaemonSet
    5.Pod控制器—ReplicaSet&Deployment
    0.4kubeadm参数说明
    14.Open vSwitch实现跨主机的容器之间网络互联
    p1144_最短路计数问题
    vue在dom绑定点击事件后,同时将值和事件传递
    vue中使用lodash的throttle不生效解决方案
    vuecli3项目添加pwa支持
    flutter for web跨域解决方案
  • 原文地址:https://www.cnblogs.com/chenrh/p/15044716.html
Copyright © 2011-2022 走看看