gpt4 book ai didi

c# - Lock() { ... } 等待时间

转载 作者:行者123 更新时间:2023-11-30 22:30:42 25 4
gpt4 key购买 nike

假设我们有 MethodA 和 MethodB,其中整个方法的主体都在单个大锁 block 中。两种方法都使用相同的对象进行锁定:

lock (objectX) 
{
// methodbody
}

有多个线程调用这两个方法。

两个问题:

  1. 是否可以测量总等待时间?包括:获取锁的时间和“other”方法的锁 block 执行完成所需的时间。
  2. 在适当的地方在两个方法中都引入锁,而不是用单个锁封装整个方法体会更快吗?我意识到在这里我需要衡量两种解决方案的性能,但我想听听您的经验和建议

最佳答案

2) Would it be faster to introduce locks in both methods on appropriate places

是的。始终保持锁定的段尽可能短。锁定本身很便宜,不要让别人在你做非关键事情时等待。

1) Is it possible to measure total wait time? Including: time to obtain lock and time required by "other" method's lock block to finish execution.

我不这么认为。对于很长一段时间,您可能会查看 CPU 时间与运行时间,但总的来说:使用一个好的分析器。

关于c# - Lock() { ... } 等待时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9587263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com