有多快?
以下是Python2.7在以下情况下的一些计时:五个获取释放周期(“锁定解锁”)
五个acquire调用,然后是五个release调用(嵌套锁,“可重入锁”unlock“)
一个混合和部分嵌套的获取和释放调用序列(“mixed_lock_unlock”)
五个不阻塞的获取释放周期(“锁定/解锁/非阻塞”)
所有四个都是针对单线程和多线程情况进行基准测试的
有10根线。我还用20个线程测试了它,结果发现
两个版本的时间大约是两倍。还要注意,拥挤的情况是
两个锁的速度都要慢得多,所以我在这里只循环了1000次
单螺纹壳体的计时而不是100000倍。Testing threading.RLock
sequential (x100000):
lock_unlock : 1.408 sec
reentrant_lock_unlock : 1.089 sec
mixed_lock_unlock : 1.212 sec
lock_unlock_nonblocking : 1.415 sec
threaded 10T (x1000):
lock_unlock : 1.188 sec
reentrant_lock_unlock : 1.039 sec
mixed_lock_unlock : 1.068 sec
lock_unlock_nonblocking : 1.199 sec
Testing FastRLock
sequential (x100000):
lock_unlock : 0.122 sec
reentrant_lock_unlock : 0.124 sec
mixed_lock_unlock : 0.137 sec
lock_unlock_nonblocking : 0.156 sec
threaded 10T (x1000):
lock_unlock : 0.911 sec
reentrant_lock_unlock : 0.938 sec
mixed_lock_unlock : 0.953 sec
lock_unlock_nonblocking : 0.916 sec