lock unlock time 578 at 10000000
empty loop time 31 at 10000000
考虑一个问题,当批量使用一个锁的情况下,
是每次如
for int i= 0;i<1000; i++
lock()
fun()
unlock()
endfor
还是
lock()
for int i= 0;i<1000; i++
fun()
endfor
unlock()
效率更高呢?
从第一二行来看lock和unlock所带来的性能开销其实可以基本忽略不记录的
但对互斥资源的占用时间是在lock()unlock()之间假设为 rt为毫秒.
如果全局有n个线程要使用互斥资源,那么每秒可以处理的线程为
1000/rt,也就是说只要rt足够小那么线程间的摩擦就会更小甚至忽略不计。