锁定(){..}等待时间
本文关键字:等待时间 锁定 | 更新日期: 2023-09-27 18:27:00
假设我们有MethodA和MethodB,其中整个方法的主体都在一个大锁块中。两种方法都使用相同的对象进行锁定:
lock (objectX)
{
// methodbody
}
有多个线程调用这两个方法。
两个问题:
- 是否可以测量总等待时间?包括:获取锁的时间和"其他"方法的锁块完成执行所需的时间
- 在适当的地方在两个方法中引入锁,而不是用单个锁封装整个方法体,会更快吗?我意识到在这里我需要衡量两种解决方案的性能,但我想听听你的经验和建议
2) 在适当的地方在两种方法中引入锁会更快吗
是的。始终保持锁定段尽可能短。锁定本身很便宜,当你做非关键的事情时,不要让别人等着。
1) 是否可以测量总等待时间?包括:获取锁的时间和"其他"方法的锁块完成执行所需的时间。
我不这么认为。对于较长的时间段,您可能会查看CPU时间与运行时间,但总的来说:使用一个好的探查器。