gpt4 book ai didi

c# - 嵌套锁对同一对象的性能

转载 作者:太空狗 更新时间:2023-10-29 17:48:53 31 4
gpt4 key购买 nike

对同一对象使用嵌套锁是否会产生性能成本。

假设我们有:

    public void AddRange(IEnumeratable<Item> items)
{
lock (_syncObject)
{
foreach (Item item in items)
{
InsertItem(item);
}
}
}

public void InsertItem(Item item)
{
lock (_syncObject)
{
//..
}
}

“性能方面”这样做可以吗?

提前致谢。

最佳答案

锁是有代价的,我建议你这样实现你的代码:

public void AddRange(IEnumeratable<Item> items)
{
lock (_syncObject) // Locking only once.
{
foreach (Item item in items)
{
InsertItemImpl(item);
}
}
}

private void InsertItemImpl(Item item)
{
// inserting the item
}

public void InsertItem(Item item)
{
lock (_syncObject)
{
InsertItemImpl(item);
}
}

关于c# - 嵌套锁对同一对象的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2692274/

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