Симуляция параллельных запросов

Постигаю асинхронное программирование на Golang. НАписал не имеющий функционального смысла код

package main

import (
    "log"
    "net"
    "net/http"
    "time"
)

func GettingAgent(ch, ch1 chan string, r *http.Request) {
    agent := r.Header.Get("User-Agent")
    ip, _, _ := net.SplitHostPort(r.RemoteAddr)
    nanos := time.Now().UnixNano()
    ch <- agent
    ch1 <- ip
    log.Println(nanos)
}

func test(w http.ResponseWriter, r *http.Request) {
    ch := make(chan string)
    ch1 := make(chan string)
    go GettingAgent(ch, ch1, r)
    log.Println(<-ch, "\b---User uses from ", <-ch1)
}

func use() {
    http.HandleFunc("/test", test)
    http.ListenAndServe(":8181", nil)
}

func main() {
    use()
}

и хочу удостовериться что запросы обрабатываются в отдельных горутинах одновременно. В связи с этим возникла необходимость сделать одновременно запрос к серверу с разных устройств. Возможно ли это? И если возможно то как? Нужно чтобы значение nanos 2х горутин было одинаковым, это будет означать что запросы обработались одновременно.


Ответы (1 шт):

Автор решения: Senior Pomidor

по-умолчанию, каждый запрос обрабатывается в отдельной горутине. Поэтому вам не нужно думать о параллелизме во время запросов.

→ Ссылка