摘要: 原文地址:http://www.cnblogs.com/chengxingliang/p/3150731.html Monitor对象 1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过 阅读全文
posted @ 2017-08-09 17:36 小水皮 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 一、多线程带来的问题 1、死锁问题 前面我们学习了Task的使用方法,其中Task的等待机制让我们瞬间爱上了它,但是如果我们在调用Task.WaitAll方法等待所有线程时,如果有一个Task一直不返回,会出现什么情况呢?当然,如果我们不做出来的话,程序会一直等待下去,那么因为这一个Task的死锁, 阅读全文
posted @ 2017-08-09 17:30 小水皮 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 一、Task的嵌套 Task中还可以再嵌套Task,Thread中能不能这样做,我只能说我是没这样写过。Task中的嵌套,我感觉其实也可以分开来写,不过嵌套起来会方便管理一点。Task中的嵌套分为两种,关联嵌套和非关联嵌套,就是说内层的Task和外层的Task是否有联系,下面我们编写代码先来看一下非 阅读全文
posted @ 2017-08-09 17:18 小水皮 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 对于多线程,我们经常使用的是Thread。在我们了解Task之前,如果我们要使用多核的功能可能就会自己来开线程,然而这种线程模型在.net 4.0之后被一种称为基于“任务的编程模型”所冲击,因为task会比thread具有更小的性能开销,不过大家肯定会有疑惑,任务和线程到底有什么区别呢? 任务和线程 阅读全文
posted @ 2017-08-09 17:08 小水皮 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 在上一篇博客5天玩转C#并行和多线程编程 —— 第一天 认识Parallel中,我们学习了Parallel的用法。并行编程,本质上是多线程的编程,那么当多个线程同时处理一个任务的时候,必然会出现资源访问问题,及所谓的线程安全。就像现实中,我们开发项目,就是一个并行的例子,把不同的模块分给不同的人,同 阅读全文
posted @ 2017-08-09 15:36 小水皮 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://www.cnblogs.com/yunfeifei/p/3993401.html 随着多核时代的到来,并行开发越来越展示出它的强大威力!使用并行程序,充分的利用系统资源,提高程序的性能。在.net 4.0中,微软给我们提供了一个新的命名空间:System.Threading. 阅读全文
posted @ 2017-08-09 14:02 小水皮 阅读(193) 评论(0) 推荐(0) 编辑