并发编程(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.多线程
并发的一种形式,它采用多个线程来执行程序。
来源:oschina
链接:https://my.oschina.net/it110/blog/3213288