golang中协程同步

时间:2025-02-28 17:42:03
//使用golang中来实现协程同步

package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
	"time"
	"os"
	"sync"
)

var waitGroup = new()
func download(i int ){
		url := (":82/2016/0919/41/%", i)
		("开始下载:%s\n", url)
		res,err := (url)
		if err != nil ||  != 200{
			("下载失败:%s", )
		}
		("开始读取文件内容,url=%s\n", url)
		data ,err2 := ()
		if err2 != nil {
			("读取数据失败")
		}

		(("pic2016/1_%", i), data, 0644)
		//计数器-1
		()
}

func main()  {
	//创建多个协程,同时下载多个图片
	("pic2016", 0666)
	now := ()

	for i :=1; i<24; i++ {
		//计数器+1
		(1)
		go download(i)
	}

	//等待所有协程操作完成
	()
	("下载总时间:%v\n", ().Sub(now))
}