- 主题:把js全干掉,统一成ts,有没有搞头?
async解决的第一个问题是单线程零开销异步io,gevent怎么解决?
【 在 qingant (傅红雪) 的大作中提到: 】
: await解决的所有问题,gevent都解决了,而且不带来任何代价,对Python来说这就是简单的事实。
--
FROM 27.91.71.*
我做得从上层看和Go是一样的,就解决并发这个问题的角度讲,Go难道不比async/await的方式强吗?
【 在 xiaoju (可爱的龙猫) 的大作中提到: 】
: 你在某项目里实现了一个和另一个库效率相等的功能,不代表你用的方法比人家更好
: 计算机世界里等效的东西太多了,语言设计者考虑的是能简单明确写对,不出低级错误的方式
--
FROM 47.56.237.*
嗯, once await ,never back.
【 在 qingant (傅红雪) 的大作中提到: 】
: 对。Python加async/await完全没必要,一个库用了这个,就扩散到整个项目
--
FROM 223.198.99.*
我看在python里面写create_task比写thread更安全些
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 所以我一直说你对 python 不了解,
: 我前面说过 async/await 对 c# 是好东东。也很适合移植到 java 和 rust 上面。
: 但对于 python/js 这种事实不支持线程的语言,gevent 就是最好的解决方案。async/await 是大毒草。
: ...................
--
FROM 27.91.71.*
实际上是和Erlang一样,不同协程之间完全隔离,只能消息通信的
【 在 qingant (傅红雪) 的大作中提到: 】
: 我之前做过类似gevent的协程方案的,用C++做一个Lua的运行时,在运行时层面把所有IO调用转成协程自动调度,用起来就和Go差不多。所以就专业性来说,我不一定比这些语言设计者弱。
--
FROM 47.56.237.*
我不太清楚Go的玩法,不过正如我刚才说的,task或者promise可不一定是一个并发对象,这东西本质就是一个可等待对象,可以是event,线程,协程或者任何其他东西
【 在 qingant (傅红雪) 的大作中提到: 】
: 我做得从上层看和Go是一样的,就解决并发这个问题的角度讲,Go难道不比async/await的方式强吗?
--
FROM 27.91.71.*
所以你们可以试着找python管理团队聊一聊,看看问题出在哪里,为啥gevent行还非要加async,而且各个库也在
: 不过现在 python 社区搞了 asyncio 以后,社区也已经疯了。http3 没人搞,倒是 aiohttp, httpx 什么的一大堆。
别的语言的使用者和你们聊,比较容易触发人的自我保护机制
【 在 qingant 的大作中提到: 】
: 我之前做过类似gevent的协程方案的,用C++做一个Lua的运行时,在运行时层面把所有IO调用转成协程自动调度,用起来就和Go差不多。所以就专业性来说,我不一定比这些语言设计者弱。
--
FROM 123.116.203.*
我们不是在探讨这个问题吗,你说async/await解决了什么gevent没解决的问题?
今天你写一个Python的库,你自己不考虑任何并发问题,让你的使用者用gevent去patch,我看不到任何机会最后结果回比async/await差
【 在 leadu (leadu) 的大作中提到: 】
: 所以你们可以试着找python管理团队聊一聊,看看问题出在哪里,为啥gevent行还非要加async,而且各个库也在
: 别的语言的使用者和你们聊,比较容易触发人的自我保护机制
--
FROM 1.85.205.*
我前一段时间简单了解过,go的协程其实是ThreadPool.QueueUserWorkItem,毕竟作者之一是os出身的,搞的也和windows xp的QueueUserWorkItem路数是一样的
【 在 xiaoju 的大作中提到: 】
: 我不太清楚Go的玩法,不过正如我刚才说的,task或者promise可不一定是一个并发对象,这东西本质就是一个可等待对象,可以是event,线程,协程或者任何其他东西
:
:
--
FROM 123.116.203.*
这个是实现层面的问题,从使用角度来看,就是你永远写同步代码,交给语言运行时去帮你调度就行了。协程完全可以看做一种不必为上层所知的优化手段。
【 在 leadu (leadu) 的大作中提到: 】
: 我前一段时间简单了解过,go的协程其实是ThreadPool.QueueUserWorkItem,毕竟作者之一是os出身的,搞的也和windows xp的QueueUserWorkItem路数是一样的
--
FROM 1.85.205.*