- 主题:觉得协程不是一个太好的编程模型
记住了,前辈。
114。1天改,一周稳定,4个月压力测试。
【 在 ylh1969 的大作中提到: 】
: 一个月?!哥们,1个月哪行呀,4个月!
: 一天改的代码,在原有线程池基础上,改出协程。一周之内能够稳定运行,不能投产呀!必须进行大量的压力测试,不断发现问题,不断解决问题,最后4个月定稿。
: 这个就是不用任何轮子的代价吧,因为这个协程必须与原有系统兼容,没办法使用现成的。
: ...................
--
FROM 113.137.205.*
不知道回谁
不是CPP协程搞晚了,是CPP协程搞得太复杂了。
协程一般实现有两种,一种是类似事件循环机制,这个要求必须在单线程内。一种是任务调度模式,这里执行的单位是一个过程,这个由调度器实现执行,它不一定在一个线程内。
问题在于CPP的实现同时实现了这两点。
【 在 z16166 的大作中提到: 】
:
: 主要还是C++的协程规范搞得晚了,别的语言都用了多久了,而且是大规模使用,肯定可以积累好的实践和规范。
:
: 乱搞那肯定是没法维护的,就跟乱throw、乱catch异常一样
:
#发自zSMTH@CDU.MP
--
FROM 113.143.105.*
OK。
因为我是多线程协程,没有现成库可用。其中线程竞争,撞栈这些问题,是单线程协程没有的,所以调试非常困难。
【 在 DoorWay 的大作中提到: 】
: 记住了,前辈。
: 114。1天改,一周稳定,4个月压力测试。
--
FROM 221.218.60.*
Python 那个asyncio太差劲了
【 在 hgoldfish 的大作中提到: 】
:
: Python 那边就没人讨论这些。
:
: 你见过有人讨论 Python yield 的使用吗?但 yield 其实就是协程的一种应用。
:
#发自zSMTH@CDU.MP
--
FROM 113.143.105.*
所以 Python 协程我只认 gevent/eventlet 哈哈。至今没用过一次的 asyncio 那个垃圾货。
【 在 VincentGe 的大作中提到: 】
: Python 那个asyncio太差劲了
: #发自zSMTH@CDU.MP
--
FROM 120.41.212.*
说的对。你也承认有多线程协程的需求。
肯定调度器的作用,我在几个帖子里提到了调度器,没人注意。
调度器很难标准化,个性化需求难以满足。
【 在 VincentGe 的大作中提到: 】
: 不知道回谁
: 不是CPP协程搞晚了,是CPP协程搞得太复杂了。
: 协程一般实现有两种,一种是类似事件循环机制,这个要求必须在单线程内。一种是任务调度模式,这里执行的单位是一个过程,这个由调度器实现执行,它不一定在一个线程内。
: ...................
--
修改:ylh1969 FROM 221.218.60.*
FROM 221.218.60.*
到了这一步你认为你还认为你需要你的的业务代码吗?
那你还不如设计一个dsl,把业务抽象出来,剩下就是优化你的执行器了
【 在 ylh1969 的大作中提到: 】
:
: 不会有用协程的业务代码。
: 业务必须是透明的使用协程,看不到的。
: 比如,把线程池模式改成协程模式,就是底层函数的改变,跟上层没有任何关系。上层是同步调用IO,改完还是同步,里边是否yield,甚至换了线程,业务是不知道的。
: 所以,要告诉写业务软件的,你的线程锁不能跨越IO,自己想办法。
#发自zSMTH@CDU.MP
--
FROM 113.143.105.*
不是,这个就不叫协程了,叫做异步任务
【 在 ylh1969 的大作中提到: 】
:
: 说的对。你也承认有多线程协程的需求。
: 肯定调度器的作用,我在几个帖子里提到了调度器,没人注意。
: 【 在 VincentGe 的大作中提到: 】
: : 不知道回谁
#发自zSMTH@CDU.MP
--
FROM 113.143.105.*
协程,就是执行异步任务的一种手段,一种工具。
异步操作同步化就是它的特点。
【 在 VincentGe 的大作中提到: 】
: 不是,这个就不叫协程了,叫做异步任务
:
: #发自zSMTH@CDU.MP
--
FROM 221.218.60.*
什么叫业务代码?难道你弄了个协程,就能股票交易啦!
交易代码里还得有yield?
【 在 VincentGe 的大作中提到: 】
: 到了这一步你认为你还认为你需要你的的业务代码吗?
: 那你还不如设计一个dsl,把业务抽象出来,剩下就是优化你的执行器了
:
: ...................
--
FROM 221.218.60.*