1 ym1ng 2020-06-10 17:41:59 +08:00 ![]() 作业请自己做(手动狗头 |
![]() | 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  |
![]() | 9 xkeyideal 2020-06-11 09:31:51 +08:00 作业不会做,给钱,我给你完整可运行的实现方案 |