c# - 设计线程安全类

标签 c# multithreading thread-safety

阅读 MSDN 文档时,它总是让您知道某个类是否是线程安全的。我的问题是你如何设计一个线程安全的类?我不是在谈论用锁定调用类我的意思是我正在为 Microsoft create XXX class\object 工作,我想说它是“线程安全的”我需要做什么?

最佳答案

使类线程安全的最简单和最万无一失的方法是使其成为immutable .它的美妙之处在于您不必再为锁定而烦恼。

秘诀:在 C# 中将所有实例变量设置为 readonly(在 Java 中为 final)。

  • 不可变对象(immutable对象)一旦在构造函数中创建和初始化,就无法更改。
  • 不可变对象(immutable对象)是线程安全的。期间。
  • 这与只有常量的类不同。
  • 对于系统的可变部分,您仍然需要考虑和处理锁定/同步属性。这是编写不可变类的首要原因之一。

查看此 question

关于c# - 设计线程安全类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3128717/

相关文章:

java - 线程安全 Servlet

java - 删除 UI 线程中已发送的消息

c# - 为什么 lambda 中的短路不起作用?

c# - 执行多线程 foreach 循环的最佳方法

c# - 在任务中使用异步套接字

c# - 任务似乎互相阻塞

C++ Vector 是线程安全的吗?多线程

c# - Azure RelayManagementClient 的 ManagedIdentityCredential

c# - .net 核心 2.1.3 ssl 错误

c# - 如何在 C# 中获取 ConcurrentDictionary 的即时快照?