76楼看看
举个例子:
SendNet("支付请求信息”);
RecvNet("银行回复");
这个接收,你不知道银行何时能回复,线程一直在等。
你的线程池,没几个线程,业务忙了,马上卡死。
你让业务逻辑自己去玩异步IO?
你跟我说过上层底层要隔离,我说也是,只能底层函数改造,让用户的同步调用不变,底层异步化,这就是同步调用异步化。使用的工具就是协程。具体办法就是在里边写yield。
前边哥们说的协程原语,我理解应用应该这么写:
await bankback
是省事,但是也需要修改应用程序,隔离度不好。
因为我是多进程,多线程,线程池一路走来,到了这一步,出了问题,才祭出了协程,所以直接就搞多线程协程,这样修改最少。
最早的需求就是同步调用异步化,至少讨论了两年,也做过其他尝试,如continueation模式,就是callback模式,不理想,最后找到协程。
【 在 VincentGe 的大作中提到: 】
: 我有个疑惑,单线程我理解,但为什么多进程,多线程,线程池会阻塞?
: 是不是你等这个线程中的任务完成?
:
: ...................
--
修改:ylh1969 FROM 221.218.60.*
FROM 221.218.60.*