[go]基于协程的并发ping(2)
2013-11-26 15:10
375 查看
直接按目标ip并发的方式,将ping封装为协程函数
go本身没有提供等待协程join的方法,需要自己实现
go本身没有提供等待协程join的方法,需要自己实现
/*简单协程版*/ package main import ( "ping" "fmt" "time" //"os" "strconv" ) var fin chan string; //用于实现jionall func pingr(host string,timeout int){ t1:=time.Now().UnixNano() alive,err:=ping.Ping(host,timeout) //alive,err:=true,0 t2:=time.Now().UnixNano() fmt.Println(host,alive,(t2-t1)/1000000,err); fin <- host } var iplist [253]string func main() { fin = make(chan string) //数组赋值 for i := 0; i < len(iplist); i++ { iplist[i]="192.168.99."+strconv.Itoa(i+1) go pingr(iplist[i],1000) } for i := 0; i < len(iplist); i++ { <-fin //fmt.Println(ip,"joined") } }
相关文章推荐
- Go 并发实现协程同步的多种解决方法
- go语言 grequests+goquery 简单爬虫,使用多协程并发爬取
- Go并发:利用sync.WaitGroup实现协程同步
- go语言 grequests+goquery 简单爬虫,使用多协程并发爬取
- [go]增加并发控制的并发ping
- 基于协程的并发框架orchid简介
- 分享:基于协程的并发框架orchid简介
- Go并发编程之协程
- go语言并发---goruntines
- 基于Erlang高并发测试之服务端准备
- Go语言基础:并发
- 基于嵌入式操作系统VxWorks的多任务并发程序设计(2) ――任务控制
- 基于C++的纯面向对象的通用高性能大并发TCP-SERVER/CLIENT开发框架实践系列之基础篇
- go语言并发编程
- 谈谈并发编程中的协程
- golang 并发之协程及通道
- Go 1.9 以后 map 并发读写的问题,sync.Map 揭秘
- 代码轮子之很简单但是挺管用的基于C# Task的模拟并发的代码
- 基于go-ethereum/p2p模块的聊天程序
- Python 并发编程之协程/异步IO