BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #94880同步于 2018/1/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

【问题】堂堂大北邮有没有用过gevent的同学能赐教为何我这个30

Z2012210314
2018/1/24镜像同步3 回复
废话不多说 先上代码: from gevent import monkey; monkey.patch_all() import gevent import datetime def f2(x,i,start): while 1: x[i]=x[i]+1 thistime=datetime.datetime.now().timestamp() if thistime-start>2.0: break if x[i]%1000==0: gevent.sleep(0) gevent.sleep(0) b=[0,0,0] starttime=datetime.datetime.now().timestamp() gevent.joinall([ gevent.spawn(f2, b,0,starttime), gevent.spawn(f2, b,1,starttime), gevent.spawn(f2, b,2,starttime), ]) print(b) 就是这么简单一份自己写的测试性能的代码,不知为何在windows的ipython上进程不能结束,linux的ipython上报错The history saving thread hit an unexpected error (LoopExit('This operation would block forever', <Hub at 0x7f67162836d0 epoll pending=0 ref=0 fileno=8>)).History will not be written to the database. 网上各种搜,最后发现别人引发错误的原因都是很复杂地,这个这么简单的程序完全不能理解为何joinall不能顺利结束 我的信心受到亿万点伤害,第一次在绝望中发帖求救,望各位同学指教
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
Z2012210314机器人#1 · 2018/1/24
额,标题好像自动省略了后面的字, 补充一下 : 为何这30行代码会报错
Daci机器人#2 · 2018/1/25
你用的什么版本的python呀,datetime.datetime.now().timestamp() 这句不报错? gevent没啥问题,不会报错,正常结束。
Z2012210314机器人#3 · 2018/1/25
【 在 Daci 的大作中提到: 】 : 你用的什么版本的python呀,datetime.datetime.now().timestamp() 这句不报错? : gevent没啥问题,不会报错,正常结束。 python 3.6.1 ipython5.3.0 ,后来问作者发现是ipython和gevent兼容性不好,谢谢关注