C# 并发编程之介绍

十年热恋 提交于 2020-04-06 13:26:32

并发编程(Concurrency):在一个时间点做更多的事情

       终端用户可以使用并发把数据写入数据库来进行异步响应。

       服务器可以使用并发编程,可以响应用户的第二个请求,当在处理第一个请求时。

1.并行处理(Parallel Processing)

     许多工作被分为多个线程去同时并行处理.

    

2.异步编程(Asynchronous Programming)

     并发的一种形式,它采用future(或promise)模式或回调(callback)机制,以避免产生不必要的线程。

     同步是阻塞模式,异步是非阻塞模式

     同步是指:发送方发出数据后,等接收方法会相应以后才发下一个数据包的通讯方式。 

     异步是指: 发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。 

      

async 修饰符可将方法、lambda 表达式或匿名方法指定为异步。 如果对方法或表达式使用此修饰符,则其称为异步方法 。

await 运算符暂停对封闭 async 方法的求值,直到其操作数表示的异步操作完成。 异步操作完成后,await 运算符将返回操作的结果(如果有)。 当 await 运算符应用到表示已完成操作的操作数时,它将立即返回操作的结果,而不会暂停封闭的方法。 await 运算符不会阻止计算异步方法的线程。 当 await 运算符暂停封闭的异步方法时,控件将返回到方法的调用方。 

Task 类 表示一个异步操作。

3.响应式编程

      一种声明式的编程模式,程序在该模式中对时间做出响应。

   

4.数据流编程

      TPL 数据流(dataflow)库的功能很强大,可用来创建网格(mesh)和管道(pipleline),并通过它们以异步方式发送数据。数据流的代码具有很强的“声明式编程”风格。通常要先完整地定义网格,然后才能开始处理数据,最终让网格成为一个让数据流通的体系架构。这种编程风格会让你觉得有些不适应,但一旦迈过这一步,你会发觉数据流适用于许多场合。

      每个网格由各种互相链接的数据流块(block)构成。独立的块比较简单,只负责数据处理中某个单独的步骤。当块处理完它的数据后,就会把数据传递给与它链接的块。

  

5.多线程

     并发的一种形式,它采用多个线程来执行程序。

 

 

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!