您的位置:首页 > 其它

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

2011-05-10 09:26 162 查看
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足够小那么线程间的摩擦就会更小甚至忽略不计。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  多线程 fun