我正在使用CPython,并发现thread.Condition的wait()方法非常低效。
import datetime
import threading
cond = threading.Condition()
start = datetime.datetime.now()
for i in range(100):
with cond:
if cond.wait(timeout=0.0001):
pass
print((datetime.datetime.now() - start).total_seconds()/100)
似乎cond.wait总是需要至少0.01秒才能继续。 即使我将超时设置为0.0001。 我知道GIL效率低下,但真的需要那么久吗?