高性能服务器-多线程的再次学习

首先看看何时用多线程,引用一篇文章

http://blog.csdn.net/delacroix_xu/article/details/5928121

再来详细地重新学习一遍多线程

http://www.cnblogs.com/leslies2/archive/2012/02/07/2310495.html

http://www.cnblogs.com/leslies2/archive/2012/02/08/2320914.html

学习后注意到,其实多线程最好的方式就是异步委托+回调+传参,任何一种模式都是如此,这种方式不用轮询,不用等待。

学习完毕之后,写入自己的一些补充

1:分配多线程时,要注意尽量不要出现资源争抢的现象,比如10个线程都去写一个文件或者写数据库的同一个表,虽然我们可以用锁机制避免资源争抢,但是在这种情况下多线程的意义不大。多线程最好的应用场景是每个线程所执行的任务相对独立,就算有访问同一资源的情况,也是只读的操作。

2:对于锁机制除了上面学习提到的lock,monitor,mutex外,还有更好的选择:ReaderWriterLockSlim类,它有专门的读锁和写锁。

http://www.cnblogs.com/lucifer1982/archive/2008/12/07/1349437.html

3:对于上面文章中所提到的异步Socket,其实也有更好的方式,就是SocketAsyncEventArgs,他是基于IOCP编写的。

http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socketasynceventargs.aspx

 

附上多线程练习的项目

下载

 

posted @ 2013-06-18 00:07  leonbao  阅读(494)  评论(1编辑  收藏  举报