python程序里面有个无限循环,代码如下
while 1:
go() #每隔一段时间,统计这个循环每秒能执行多少次
time.sleep(0.001)
最后发现,加上time.sleep(0.001)后,这个循环每秒不超过1000次/秒。也就是最高1000次,不能再高了,后来使用c写了一个usleep替换time.sleep,问题还是一样。为什么,那位同学知道哦
python程序里面有个无限循环,代码如下
while 1:
go() #每隔一段时间,统计这个循环每秒能执行多少次
time.sleep(0.001)
最后发现,加上time.sleep(0.001)后,这个循环每秒不超过1000次/秒。也就是最高1000次,不能再高了,后来使用c写了一个usleep替换time.sleep,问题还是一样。为什么,那位同学知道哦
哈哈!楼主悲剧了。time.sleep(0.001)
0.001*1000 = 1秒
试试select或者nanosleep, 我记得usleep在一些平台上是有副作用的,具体副作用是什么,我忘了....@中山野鬼
引用来自“false”的答案
试试select或者nanosleep, 我记得usleep在一些平台上是有副作用的,具体副作用是什么,我忘了....@中山野鬼
引用来自“kakala”的答案
试试select.select([],[],[],timeout)
python的sleep里做了很多工作,比如释放GIL, 你直接封装一下usleep可能导致你全局被锁