1
ym1ng 2020-06-10 17:41:59 +08:00 1
作业请自己做(手动狗头
|
2
fiypig 2020-06-10 17:46:07 +08:00
面试题吗
|
3
morty961 2020-06-10 17:47:01 +08:00 via Android
这个面试题我也做过。变量名都一样,不会是同一家公司吧
|
4
dallaslu 2020-06-10 18:02:09 +08:00
话说这个题的 point 在协程吗?
|
5
sadfQED2 2020-06-10 18:56:57 +08:00 via Android
每个 url 都开一个 go 程请求下,请求结束添加到管道,管道够 200 个就返回,是这个意思吗?
|
7
blackeeper 2020-06-11 00:10:04 +08:00
伪代码,golang 初学者,请大神检阅
``` #urls 放入通道 go func() {ch <- urls;ch.Close()}() #五个 goroutine,并发 for i=0;1<5;i++ { go func() { for url := range ch { #消费通道 r,err := httpGet(url,timeout=3) if err != nil || err == TimeoutError { log.err("请求失败:%s"url) break } #存储返回 200 的结果 if r.StatusCode == 200 { ts := r.time.Duration results[url] = ts } } }() } #最快相应 200 的 URL sortTime(results) ``` |
8
blackeeper 2020-06-11 00:15:30 +08:00
![伪代码]( https://imgchr.com/i/t7sPoV)
|
9
xkeyideal 2020-06-11 09:31:51 +08:00
作业不会做,给钱,我给你完整可运行的实现方案
|