现在的位置: 首页 > 综合 > 正文

多线程内数据长效保护的问题二

2013年03月29日 ⁄ 综合 ⁄ 共 319字 ⁄ 字号 评论关闭

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足够小那么线程间的摩擦就会更小甚至忽略不计。

抱歉!评论已关闭.