Golang - Parallelism From Slices : I have a problem and end up with this code.

    package main

    import (
        "fmt"
        "io/ioutil"
        "net/http"
        "os"
        "runtime"
        "strconv"
        "strings"
        "sync"
        "time"
    )

    func main() {
        start := time.Now()
        target := os.Args[1]
        thread, _ := strconv.Atoi(os.Args[3])
        file, err := ioutil.ReadFile(os.Args[2])
        if err != nil {
            fmt.Println("Error: Please double check if the file " + os.Args[2] + " is exist!")
            os.Exit(0)
        }
        wordlist := strings.Split(string(file), "\n")

        var wg sync.WaitGroup
        runtime.GOMAXPROCS(runtime.NumCPU())
        jobs := make(chan string)
        for i := 0; i < thread; i++ {
            wg.Add(1)
            defer wg.Done()
            for _, word := range wordlist {
                go func(word string) {
                    jobs <- word
                }(word)
            }
        }

        go func() {
            for job := range jobs {
                code := visit(target + job)
                fmt.Println(target + job + " - " + strconv.Itoa(code))
            }
        }()
        wg.Wait()

        elapsed := time.Since(start)
        fmt.Printf("Timer: %s\n", elapsed)
    }

    func visit(url string) int {
        data, err := http.Get(url)
        if err != nil {
            panic(err)
        }
        return data.StatusCode
    }

I want to make it run parallel based on number of thread. But the result was not as i expected. I dont know how to make it efficient and fast.

Any help would be appreciated. Thank you.