github可以点进各个子函数看,可以看看全部语义是几行。
讨论起因是你说协程有同步问题,举例说调用3个协程等一个返回之后继续,这种情况是个问题。
我和你说,二代协程没有这个问题,你说的是一代协程的问题。c#里面,你举例的情况就是个task.whenany()一行
你说,不可能,task.whenany内部实现可能有300行并有协程间通信
我说,源代码在此,你自己看task.whenany有没有300行。同时指出二代协程的设计思路是和一代不一样的,这种情况不需要锁,或者至少不需要协程间通信
你说,看python
可为什么要看python?论证逻辑在哪里?
别人只需要举例证明有些语言的实现没有你预期的同步问题,剩下的是你使用的语言问题了
【 在 hgoldfish 的大作中提到: 】
: 单是 whenany,在 python 里面也就几行。
: 我说的是全部同步语义的实现代码行数。这可比 c# 少多了。你再仔细去研究 dotnot 的实现吧。它的协程实现不可能比 python 简单的,因为 python 是单线程的,而 c# 是多线程。刚好这俩语言都支持最基础的 async/await
:
--
FROM 123.116.198.*