我的应用程序中有12到13个长时间运行的goroutines,它们负责出现数千个短命的goroutines。
除了定期调用runtime.Gosched()之外,我还需要考虑在长期运行的事情中要做的其他事情吗?
注意:目前那些长期运行的资源会每隔15到30秒(有时每隔几分钟)对资源集合执行一些监督,然后就会睡觉。
答案 0 :(得分:2)
不,goroutines不需要持续维护。它们由go运行时管理,并将继续运行直到它们返回,或者主goroutine退出。你甚至不应该调用runtime.Gosched(),因为只有当一个例程不能让自己产生时才需要它,但是你的大部分时间都在睡觉。