ConcurrentDictionary的使用
2015-10-26 15:28
651 查看
一、ConcurrentDictionary<TKey, TValue>的理解
1、表示可由多个线程同时访问的键/值对的线程安全集合。
2、ConcurrentDictionary是.net4.0推出的一套线程安全集合里的其中一个,和它一起被发行的还有
ConcurrentStack,ConcurrentQueue等类型,它们的单线程版本(线程不安全的,Queue,Stack,Dictionary)。
3、用法同Dictionary很多相同,但是多了一些方法。ConcurrentDictionary 属于System.Collections.Concurrent 命名空间
二、ConcurrentDictionary的实例
文章转载自: ConcurrentDictionary与Dictionary的区别有哪些 http://www.studyofnet.com/news/1068.html
一、ConcurrentDictionary<TKey, TValue>的理解
1、表示可由多个线程同时访问的键/值对的线程安全集合。
2、ConcurrentDictionary是.net4.0推出的一套线程安全集合里的其中一个,和它一起被发行的还有
ConcurrentStack,ConcurrentQueue等类型,它们的单线程版本(线程不安全的,Queue,Stack,Dictionary)。
3、用法同Dictionary很多相同,但是多了一些方法。ConcurrentDictionary 属于System.Collections.Concurrent 命名空间
二、ConcurrentDictionary的实例
public interface IGetLogger { Logger GetLogger(string cmdId); } public class ConcurrentDictionaryLogger : IGetLogger { ConcurrentDictionary<string, Logger> loggreDic = new ConcurrentDictionary<string, Logger>(); public Logger GetLogger(string cmdId) { if (!loggreDic.ContainsKey(cmdId)) { loggreDic.TryAdd(cmdId, LogManager.GetLogger(string.Format("AAA.{0}", cmdId))); } return loggreDic[cmdId]; } } public static void Main() { IGetLogger conLogger = new ConcurrentDictionaryLogger(); IGetLogger lockerLogger = new LockerDictionaryLogger(); CodeTimer.Time("使用ConcurrentDictionary", 1000000, () => { ThreadPool.QueueUserWorkItem(o => { try { var logger = conLogger.GetLogger("AAA"); if (logger == null) { Console.WriteLine(string.Format("第{0}个线程获取到的值是 NULL", o)); } } catch (Exception ex) { Console.WriteLine(string.Format("第{0}个线程出现问题, {1}", o, ex.Message)); } }); }); }
文章转载自: ConcurrentDictionary与Dictionary的区别有哪些 http://www.studyofnet.com/news/1068.html
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 星外ASP.Net的安全设置相关说明
- C#、ASP.NET通用扩展工具类之TypeParse
- 实现ASP.NET无刷新下载并提示下载完成的开发思路
- C#、ASP.NET通用扩展工具类之LogicSugar
- C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等)
- 程序中常用的种代码
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- ASP.NET页面间的传值的几种方法
- 入侵ASP.net网站的经验附利用代码
- asp.net OleDbCommand 的用法
- jquery调用asp.net 页面后台的实现代码
- asp.net中XML如何做增删改查操作
- asp.net中的check与uncheck关键字用法解析
- ASP.NET MVC 4 捆绑和缩小实例介绍
- ASP.Net Post方式获取数据流的一种简单写法
- asp.net动态产生checkbox(数据源为DB或内存集合)
- Asp.Net 和 AJAX.Net 的区别第1/2页
- ASP.NET仿新浪微博下拉加载更多数据瀑布流效果
- ASP.NET通过自定义函数实现对字符串的大小写切换功能