随笔分类 -  并发编程(Concurrent programming)

摘要:前言 并行编程:通过编码方式利用多核或多处理器称为并行编程,多线程概念的一个子集。 并行处理:把正在执行的大量的任务分割成小块,分配给多个同时运行的线程。多线程的一种。 并行编程分为如下几个结构: 1.并行的LINQ或PLINQ 2.Parallel类 3.任务并行结构 4.并发集合 5.SpinL 阅读全文
posted @ 2018-09-22 01:24 Jonins 阅读(10724) 评论(9) 推荐(14) 编辑
摘要:前言 本来这篇文章上个月就该发布了,但是因为忙 QuarkDoc 一直没有时间整理,所以耽搁到今天,现在回归正轨。 C# 5.0 虽然只引入了2个新关键词:async和await。然而它大大简化了异步方法的编程。 在 线程池(threadPool)大致介绍了微软在不同时期使用的不同的异步模式,有3种 阅读全文
posted @ 2018-09-12 09:14 Jonins 阅读(29651) 评论(12) 推荐(16) 编辑
摘要:任务概述 线程(Thread)是创建并发的底层工具,因此有一定的局限性(不易得到返回值(必须通过创建共享域);异常的捕获和处理也麻烦;同时线程执行完毕后无法再次开启该线程),这些局限性会降低性能同时影响并发性的实现(不容易组合较小的并发操作实现较大的并发操作,会增加手工同步处理(加锁,发送信号)的依 阅读全文
posted @ 2018-08-15 10:25 Jonins 阅读(5226) 评论(1) 推荐(3) 编辑
摘要:线程池概述 由系统维护的容纳线程的容器,由CLR控制的所有AppDomain共享。线程池可用于执行任务、发送工作项、处理异步 I/O、代表其他线程等待以及处理计时器。 线程池与线程 性能:每开启一个新的线程都要消耗内存空间及资源(默认情况下大约1 MB的内存),同时多线程情况下操作系统必须调度可运行 阅读全文
posted @ 2018-08-07 12:50 Jonins 阅读(11900) 评论(5) 推荐(6) 编辑
摘要:线程概述 线程是一个独立处理的执行路径。每个线程都运行在一个操作系统进程中,这个进程是程序执行的独立环境。在单线程中进程的独立环境内只有一个线程运行,所以该线程具有独立使用进程资源的权利。在多线程程序中,在进程中有多个线程运行,所以它们共享同一个执行环境。 基础线程(thread) 使用Thread 阅读全文
posted @ 2018-07-24 11:09 Jonins 阅读(6971) 评论(4) 推荐(8) 编辑
摘要:事件概述 委托是一种类型可以被实例化,而事件可以看作将多播委托进行封装的一个对象成员(简化委托调用列表增加和删除方法)但并非特殊的委托,保护订阅互不影响。 基础事件(event) 在.Net中声明事件使用关键词event,使用也非常简单在委托(delegate)前面加上event: 上述代码执行结果 阅读全文
posted @ 2018-07-18 17:39 Jonins 阅读(2645) 评论(4) 推荐(5) 编辑
摘要:委托概述 将方法调用者和目标方法动态关联起来,委托是一个类,所以它和类是同级的,可以通过委托来掉用方法,不要误以为委托和方法同级的,方法只是类的成员。委托定义了方法的类型(定义委托和与之对应的方法必须具有相同的参数个数,并且类型相同,返回值类型相同),使得可以将方法当作另一个方法的参数来进行传递,这 阅读全文
posted @ 2018-07-17 12:10 Jonins 阅读(6256) 评论(5) 推荐(1) 编辑
摘要:前言 说实话,在我软件开发的头两年几乎不考虑并发编程,请求与响应把业务逻辑尽快完成一个星期的任务能两天完成绝不拖三天(剩下时间各种浪),根本不会考虑性能问题(能接受范围内)。但随着工作内容的变化,一些问题,它的解决方案已经让我避不开并发编程这一块知识点了。为了一劳永逸,此系列与并发编程有关的系列文章 阅读全文
posted @ 2018-07-15 17:40 Jonins 阅读(598) 评论(1) 推荐(0) 编辑