master
go 34 lines 537 Bytes
Raw
1 package main
2
3 import (
4 "fmt"
5 "log"
6 "net/http"
7 "sync"
8 "time"
9 )
10
11 func main() {
12 when := make(chan time.Time, 2)
13 var wg sync.WaitGroup
14 wg.Add(2)
15 for _, port := range []string{"5001", "8080"} {
16 go func(port string) {
17 defer wg.Done()
18 for {
19 r, err := http.Get(fmt.Sprintf("http://127.0.0.1:%s", port))
20 if err != nil {
21 continue
22 }
23 t := time.Now()
24 when <- t
25 log.Println(port, t, r.StatusCode)
26 break
27 }
28 }(port)
29 }
30 wg.Wait()
31 first := <-when
32 second := <-when
33 log.Println(second.Sub(first))
34 }