generator(比如python的yield)作为一个特殊的coroutine能把某些场景搞得简洁。别的并没有让我信服的场景。 wdong 发表于 2023-10-04 16:06
牛人。 我怎么读不懂coroutin的程序呢。 microsat 发表于 2023-10-04 16:11
能提高traverse的速度吗?
牛人。 我怎么读不懂coroutin的程序呢。
一般的coroutine弊端就是难读。究其根源是因为违反了结构性程序设计的基本原则。难读难写就容易出错,出了错还难debug, 因为没有清晰的stack结构。
在十几二十年前CPU处理能力还比较稀缺的时候, coroutine的一个重要应用是写网络服务器。现在服务器CPU几十个核,算法大规模进入GPU,暂时看不出有前景。
这种场景下,coroutine可以提高单核的利用率。参考https://gobyexample.com/goroutines。
建议你们了解一下linux底层的API,了解一下在没有coroutine的情况下怎么处理。