golang 面试题,多个协程轮流、依次、按顺序,输出数字
执行完成后退出的方式不够优雅,采用了一个用于发送停止指令的有缓存chan,本想在数量超过N时,通过close(l.next.ch)来循环关闭,可这种方式非常容易死锁,有没有更优雅的退出方式呀?举例:2个协程,依次轮流按顺序打印数字10,协程m1打印数字1,协程m2打印数字2,接着协程m1打印数字3,协程m2打印数字4,以此类推。给定协程数M,和要打印的数字范围N,保证所有的goroutine是按顺序执行,执行完之后所有协程正常退出。有序的实现,参考链表的结构,串起来依次执行,所以我定义了一个结构。
原创
2023-09-08 16:31:59 ·
385 阅读 ·
0 评论