Golang 中国
package main

import (
    "fmt"
)

func main() {
    for {
        go NewJob()
    }
}

func NewJob() {
    var buf [1024]byte
    fmt.Println(buf)
}

内存持续上涨,到一定程度直接因为内存读取过多闪退崩溃。如果真的遇到这种情况的程序,需要goroutine里开很多buf,该这么解决?

请问何解


jimmykuu 于 2017-09-26 11:54 修改
6 回复
aliipay
#1 aliipay • 2017-09-22 16:17

很多和无限多是有区别的

yuchen16
#2 yuchen16 • 2017-09-26 11:52

按硬件配置合理分配资源

525252
#3 525252 • 2017-10-05 04:14

你这样写法.不管什么语言都得崩啊.

496543679
#4 496543679 • 2017-10-05 20:12

资源无限申请,终究会耗尽,即时神仙也无手段解决。

qiangmzsx
#5 qiangmzsx • 2017-10-17 13:35

Goroutine的最大数目是2^16.

kelwang
#6 kelwang • 2017-10-20 09:06

job里加个context, 用来cancel

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。