如何确定一个方法是否是线程安全的
例如,如果我检查http://msdn.microsoft.com/en-us/library/3wcytfd1.aspx,没有任何指示它的线程安全性。
如何确定一个方法是否是线程安全的
例如,如果我检查http://msdn.microsoft.com/en-us/library/3wcytfd1.aspx,没有任何指示它的线程安全性。
不,它们不是线程安全的(如果没有进行自己的锁定)。
请使用其中一个Concurrent集合。
System.Collections.Concurrent命名空间提供了几个线程安全的集合类,应该在多个线程同时访问集合时,使用这些类来替换System.Collections和System.Collections.Generic命名空间中对应的类型。
List<T>
类的文档中,有关线程安全的一节如下所示:
该类型的公共静态成员(在 Visual Basic 中为 Shared)是线程安全的。任何实例成员都不能保证是线程安全的。
List
有静态方法,它们将是线程安全的,因为它们不会更改任何全局状态。在没有同步的情况下共享List
实例是不安全的,因为您始终需要调用它们的实例方法才能使用它们。 - millimoose