小编sse*_*lla的帖子

net/http 传输超出 MaxConnsPerHost

我有一个简单的程序,下面是一个简单的 HTTP 客户端和服务器。我正在测试Go 1.11MaxConnsPerHosthttp.Transport引入的功能是否如宣传的那样工作。但是,当我运行代码超过 10-30 分钟时,ESTABLISHED 连接慢慢超过了设置。难道我做错了什么?MaxConnsPerHost

package main

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

func main() {

    // Server
    //
    go func() {

        if err := http.ListenAndServe(":8081", http.HandlerFunc(
            func(w http.ResponseWriter, r *http.Request) {
                w.Write([]byte("hi"))
            },
        )); err != nil {
            log.Fatal(err)
        }

    }()

    // Client settings
    //
    c := &http.Client{
        Timeout: 30 * time.Second,
        Transport: &http.Transport{
            Proxy: http.ProxyFromEnvironment,
            DialContext: (&net.Dialer{
                Timeout:   30 * time.Second,
                KeepAlive: 30 * time.Second,
                DualStack: true,
            }).DialContext, …
Run Code Online (Sandbox Code Playgroud)

go

6
推荐指数
1
解决办法
1974
查看次数

Golang:为什么 goroutine 不并行运行?

我有下面的示例,其中两个 goroutine 应该并行运行。但是如果你检查输出,第二个 goroutine 仅在第一个 goroutine 完成后运行。所以,它是顺序的。

\n\n

添加 2 个处理器:runtime.GOMAXPROCS(2)也没有帮助。我在 8 核 Mac pro 上运行,这绝对不是硬件问题。\n所以我的问题 - Golang 真的是并行的吗?如何使下面的示例并行运行?

\n\n

输出:

\n\n
Thread 1\nThread 1\n  \xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6....\nThread 1\nThread 1\nThread 2\nThread 2\n  \xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6....\nThread 2\nThread 2\n
Run Code Online (Sandbox Code Playgroud)\n\n

去代码:

\n\n
package main\n\nimport (\n    "runtime"\n    "time"\n)\n\nfunc main() {\n\n    runtime.GOMAXPROCS(2)\n\n    go func() {\n        for i := 0; i < 100; i++ {\n            println("Thread 1")\n            //time.Sleep(time.Millisecond * 10)\n        }\n    }()\n\n    go func() {\n        for i := 0; i < 100; i++ {\n            println("Thread 2")\n            //time.Sleep(time.Millisecond …
Run Code Online (Sandbox Code Playgroud)

parallel-processing multithreading go

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

go ×2

multithreading ×1

parallel-processing ×1