理解GEVENT的协程调度 – 如何在GEVENT里结束一个CPU BOUND 操作
说起这个需求,其实是来自于实现一个Gevent内的代码执行器的逻辑。
这个逻辑要求定时运行某个用户的callback,但是必须不能一直执行这个callback,所以要有Timeout,在Timeout到达的时候,自动kill掉用户的Greenlet.
说起这个需求,其实是来自于实现一个Gevent内的代码执行器的逻辑。
这个逻辑要求定时运行某个用户的callback,但是必须不能一直执行这个callback,所以要有Timeout,在Timeout到达的时候,自动kill掉用户的Greenlet.
上周基友忽然问我,周六能不能帮他写写代码,说是参加什么比赛,可以多个人一起做题,赛程好像是24小时。
当时我感觉应该是比较麻烦的事情,准备不做的,不过后面一想,万一很有趣呢,哈哈。
到了周六,都差点忘了有这回事,被一个QQ消息提醒了,就开始做题了。后面才知道,这个活动叫“极限编程大赛”,会临场发布一些网上基本上搜不到的问题,给你解决,分数根据跑过的测试用例来计算。
我帮他做了两个题,都还算比较理想,也花了不少时间,但感觉颇有收获:)