【发布时间】:2009-03-15 21:47:47
【问题描述】:
好吧,我在 .net 中写作,我有一个女巫列表,我只会添加项目永远不会删除,它是一个链接列表,如果它不是最好的选择,我可以更改它,但任何方式都可以安全地不在这种情况下使用任何锁定,当我知道这个列表永远不会以任何其他方式更改但它被添加到? (尝试添加到列表时会使用锁)?
【问题讨论】:
标签: c# .net multithreading
好吧,我在 .net 中写作,我有一个女巫列表,我只会添加项目永远不会删除,它是一个链接列表,如果它不是最好的选择,我可以更改它,但任何方式都可以安全地不在这种情况下使用任何锁定,当我知道这个列表永远不会以任何其他方式更改但它被添加到? (尝试添加到列表时会使用锁)?
【问题讨论】:
标签: c# .net multithreading
没有;为了支持许多读者和一位作者(对 Jared 的回复的 cmets),您可能需要查看 ReaderWriterLockSlim。作者需要独占访问权限;读者可以合作。这就是ReaderWriterLockSlim 所做的。还有ReaderWriterLockpre 3.5。
您需要手动处理进入/退出等 - 最好通过 try/finally。
【讨论】:
不,这不安全。 LinkedList 不是线程安全的类。 LinkedList 唯一支持的多线程场景是多个阅读器
【讨论】: