多线程问题
2015-11-30 20:34
190 查看
这两天写程序发现,多线程同时读写一个配置文件,会抛异常导致失败,看来必须加锁才行,但是这样性能又会受损失,但这是没办法的事,最后的解决方案是,把多线程产生的结果先保存在一个ConcurrentDictionary中,然后再用单线程写入配置文件,这样速度避免了对文件写操作的竞争,用单线程反而非常的快!
在解决上面问题的过程中,遇到一个非常奇怪的bug,那就是如果只是用普通的Dictionary,在多线程不断的往里面Add item的时候,居然会导致把Key和Value同时为null的item给加进去,最终解决办法是用ConcurrentDictionary,加的方法改为用TryAdd。
在解决上面问题的过程中,遇到一个非常奇怪的bug,那就是如果只是用普通的Dictionary,在多线程不断的往里面Add item的时候,居然会导致把Key和Value同时为null的item给加进去,最终解决办法是用ConcurrentDictionary,加的方法改为用TryAdd。
相关文章推荐
- IIS内存泄漏
- Windows下使用DOS命令进入MySQL数据库
- 【NDK开发】NDK开发实例1-hellojni
- 欢迎使用CSDN-markdown编辑器
- 将264万次数据的比较运算,运行时间从2.5小时降低到3分钟(R实现)
- BZOJ4140 : 共点圆加强版
- 1035. Password (20)
- UITableView
- 【Java EE (Struts2 + Spring + Hibernate)开发】:Struts2(二)之【控制文件上传和下载】
- C语言根据路径打开文件内容
- win32api大全
- C library function - tmpfile()
- NYOJ 108士兵杀敌(一)
- 真的有一生顺遂没有挫折苦难的人生吗?
- 有用的dede表单代码
- 《算法竞赛入门经典2ndEdition 》例题3-6 环状序列(Circular Sequence, Uva1584)
- 十一月英语总结——英语需要每天都保持热情
- sql.Date与util.Date日期格式化和转换
- 汉诺塔IV
- 找出无向图汇总的相连要素