ThreadStatic属性还是ConcurrentDictionary?这对于线程安全来说更好

本文关键字:线程 安全 更好 于线程 属性 ConcurrentDictionary ThreadStatic | 更新日期: 2023-09-27 17:51:14

我是ThreadStatic的新手,我以前使用过ConcurrentDictionary。那么哪个是更好的选择呢?这取决于具体情况。如果是依赖的:

  1. 在什么情况下我应该使用标有IList属性的[ThreadStatic] ?
  2. 我应该在什么情况下使用*ConcurrentDictionary *?

ThreadStatic属性还是ConcurrentDictionary?这对于线程安全来说更好

ThreadStatic只能在当前线程中使用,不能从其他线程访问实例。每个线程都有自己的ThreadStatic实例。

ThreadStatic被存储在线程本地存储器中,每个线程都有本地存储器,. net做了一些额外的逻辑使其工作

  1. 当你想要每个线程访问一个实例时,你应该使用ThreadStatic。在客户端与服务器通信的情况下,服务器端每个套接字有一个线程,它需要将有关客户端套接字的信息和其他一些信息存储在静态变量中,由其他库访问。ThreadStatic会导致复杂的代码,因此应该避免使用或小心编码。

  2. 当你想在多个线程之间访问共享资源时,你可以使用ConcurrentDictionary