【发布时间】:2014-08-10 00:11:46
【问题描述】:
我有一个提供课程的第 3 方库。他们的文件说:
线程安全
这种类型的公共静态(在 Visual Basic 中为共享)成员对于多线程操作是安全的。不保证实例成员是线程安全的。
我做了一些测试,我创建了 100 个线程。如果我将同一个对象传递给所有 100 个线程,确实存在线程安全问题,但如果每个线程创建自己的类实例,这些问题似乎就会消失。
我在这里使用 .NET 4.0。在我的应用程序中,有多个线程想要使用这个类,但我不想创建和销毁不必要的对象(它们应该在应用程序的生命周期内存在),所以我希望每个线程一个。这是对ThreadLocal<T> 类的适当使用吗?如果不是,处理这个问题的标准方法是什么?
编辑:
有关第 3 方课程的更多信息。它是一个通信库,并打开到另一个进程的通信链接,无论是在这台计算机上还是在另一台计算机上。通信链路的另一端被设计为接受并发连接。因此,我不需要使用locks 来同步我端的方法调用。但是,每个实例都不是线程安全的。
【问题讨论】:
标签: c# .net thread-safety