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
    数据已拉取完毕喽
    

      

  • 相关阅读:
    基于朴素贝叶斯的内容推荐算法
    Android Message和obtainMessage的差别
    hevc 的相关文章的链接
    创建不被杀死的service
    TQ2440 学习笔记—— 2、Win7PC 与虚拟机Ubuntu互通 ping 的网络设置
    国防科大校赛I题: Prime Summation
    VC 中怎样改变窗体背景色
    小心使用IHttpHandler下的IsReusable属性
    hdu1702(ACboy needs your help again!) 在杭电又遇坑了
    deque C++实现
  • 原文地址:https://www.cnblogs.com/chenrh/p/15044716.html
Copyright © 2011-2022 走看看