随笔分类 -  .NET

摘要:三年前写过基于ConcurrentQueue的异步队列,今天在整理代码的时候发现当时另外一种实现方式-使用BlockingCollection实现,这种方式目前依然在实际项目中使用。关于BlockingCollection的基本使用请查阅MSDN。源码实现 下面直接上代码:(代码已经放到了我的git 阅读全文
posted @ 2017-04-06 20:20 Mao先生 阅读(7987) 评论(4) 推荐(3) 编辑
摘要:本文是.Net中的并行编程第六篇,今天就介绍一些我在实际项目中的一些常用优化策略。 一、避免线程之间共享数据 避免线程之间共享数据主要是因为锁的问题,无论什么粒度的锁,最好的线程之间同步方式就是不加锁,这个地方主要措施就是找出数据之间的哪个地方需要共享数据和不需要共享数据的地方,再设计上避免多线程之间共享数据。 在以前做过的某项目,开始时设计的方案: ... 阅读全文
posted @ 2015-02-27 23:51 Mao先生 阅读(2959) 评论(10) 推荐(3) 编辑
摘要:好的工具能帮我们提升开发效率,能用工具去做的事情尽量使用工具,让我们的开发尽量自动化是提升开发效率的关键因素。 很多人都用过Resharper,也被Resharper超多的快捷键所折服,本篇文章我总结出实际常用的几个Resharper快捷键。 1.生成方法存根:Ctrl+K+M(忘了这个快捷键是VS 阅读全文
posted @ 2014-11-15 17:07 Mao先生 阅读(2699) 评论(10) 推荐(4) 编辑
摘要:自己在Excel整理了很多想写的话题,但苦于最近比较忙(其实这是借口)。。。。 上篇文章《.Net中的并行编程-4.实现高性能异步队列》介绍了异步队列的实现,本篇文章介绍我实际工作者遇到了处理多线程问题及基于异步队列底层数据结构的解决方案。 需求如下:1.提供数据服写入服务供上层应用调用,数据写入... 阅读全文
posted @ 2014-11-09 00:48 Mao先生 阅读(2356) 评论(2) 推荐(1) 编辑
摘要:上文《.Net中的并行编程-3.ConcurrentQueue实现与分析》分析了ConcurrentQueue的实现,本章就基于ConcurrentQueue实现一个高性能的异步队列,该队列主要用于实时数据流的处理并简化多线程编程模型。设计该队列时考虑以下几点需求(需求来自公司的一个实际项目): 1 阅读全文
posted @ 2014-10-12 21:40 Mao先生 阅读(10360) 评论(19) 推荐(8) 编辑
摘要:在上篇文章《.net中的并行编程-1.基础知识》中列出了在.net进行多核或并行编程中需要的基础知识,今天就来分析在基础知识树中一个比较简单常用的并发数据结构--.net类库中无锁栈的实现。 首先解释一下什么这里“无锁”的相关概念。 所谓无锁其实就是在普通栈的实现方式上使用了原子操作,原子操作的原理... 阅读全文
posted @ 2014-09-25 22:09 Mao先生 阅读(4027) 评论(2) 推荐(2) 编辑
摘要:在上文《.Net中的并行编程-2.ConcurrentQueue的实现与分析》 中解释了无锁的相关概念,无独有偶BCL提供的ConcurrentQueue也是基于原子操作实现, 由于ConcurrentQueue的代码较多所以本文主要分析几个常用操作:入队(EnQueue) 、出队(TryDequ... 阅读全文
posted @ 2014-09-25 22:02 Mao先生 阅读(8552) 评论(0) 推荐(3) 编辑
摘要:最近半年一直研究用.net进行并行程序的开发与设计,再研究的过程中颇有收获,所以画了一个图总结了一下并行编程的基础知识点,这些知识点是并行编程的基础,有助于我们编程高性能的程序,里面的某些结构实现机制也蕴含着丰富的软件设计思想,在后续的文章中我会对图里面提到某些数据结构或同步机制的源码进行分析。 ... 阅读全文
posted @ 2014-07-09 21:10 Mao先生 阅读(3450) 评论(14) 推荐(11) 编辑
摘要:网络编程一直是经久不衰的话题,今天就网络编程里面一些问题做个总结,由于UDP相对于TCP的处理问题比较简单,所以这次总结的都是有关TCP的。 一、关于服务器最大TCP连接数问题。 很多人认为单台服务器的最大TCP连接数是65536也就是受限于服务器的端口的数量 如果服务器想开6W以上的TCP连接就要 阅读全文
posted @ 2014-04-23 12:56 Mao先生 阅读(1088) 评论(1) 推荐(2) 编辑
摘要:我们知道并行编程模型两种:一种是基于消息式的,第二种是基于共享内存式的。 前段时间项目中遇到了第二种 使用多线程开发并行程序共享资源的问题 ,今天以实际案例出发对.net里的共享内存式的线程同步机制做个总结,由于某些类库的应用属于基础,所以本次不对基本使用做出讲解,基本使用 MSDN是最好的教程。 阅读全文
posted @ 2014-04-13 17:16 Mao先生 阅读(2882) 评论(3) 推荐(2) 编辑
摘要:FxCop是一款微软官方提供的.net平台代码审查工具,目的是检查我们编写的程序集的代码是否符合规范。FxCop默认提供的是微软默认的审查规则,而且该规则符合《Framework DesignGuidelines》里面大部分的设计规范。因为FxCop默认提供的规范比较严格所以对开发人员的要求也比较高 阅读全文
posted @ 2014-03-18 23:48 Mao先生 阅读(4407) 评论(1) 推荐(4) 编辑