gpt4 book ai didi

multithreading - 转到: runtime: program exceeds 10000-thread limit

转载 作者:行者123 更新时间:2023-12-03 12:55:23 32 4
gpt4 key购买 nike

当我使用go时,出现错误'运行时:程序超出10000个线程限制'

那是关于goroutine的信息。
' SCHED 229357ms:gomaxprocs = 16 idleprocs = 0线程= 8797 idlethreads = 8374 runqueue = 2131 gcwaiting = 0 nmidlelocked = 141 nmspinning = 0 stopwait = 0 sysmonwait = 0 '

我们可以看到有8374个空闲线程,没有理由通过os创建更多线程。

为什么程序超出了10000个线程的限制?

最佳答案

如果没有大量程序代码,就无法提供明确的答案。而且我怀疑您是否可以提供一个简化的示例来解决这个问题。 10,000个线程是很多线程。

我猜是因为Go会为每个goroutine的阻塞操作创建一个新线程,所以您有很多goroutine进行阻塞调用。

我不确定,但是我认为每个goroutine都会保留自己的阻塞调用线程,并且不会将它们合并。因此,拥有超过10,000个goroutine且每个goroutine进行阻塞调用可能是一个问题。

虽然所有的猜测。

编辑:

找到增加10,000个线程限制的方法:
https://golang.org/pkg/runtime/debug/#SetMaxThreads
debug.SetMaxThreads(20000)

关于multithreading - 转到: runtime: program exceeds 10000-thread limit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32042048/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com