首页 > 编程语言 >C#并行编程:简要

C#并行编程:简要

时间:2022-09-01 16:26:20浏览次数:61  
标签:简要 C# 编程 并行 任务 PFX Parallel PLINQ

通过编程发挥多核或多处理器优势的方式称为并行编程。它是多线程这个更宽泛概念的一个子集。
多线程API和以下可以发挥多核处理器能力的各种结构:

  • 并行LINQ(PLINQ)
  • Parallel类
  • 任务并行结构
  • 并发集合

这些类型一般统称为并行框架(Parallel Framework,PFX)。
Parallel类和任务并行结构统称为任务并行库(Task parallel Library,TPL)。

PFX

PFX概念

在线程间划分工作的策略有两种:数据并行任务并行
当一组任务需要处理很多的数据值时,我们可以令每一个线程以相同的方式处理一部分数据值,这称为数据并行,即将数据在线程间进行了划分。
相对地,任务并行则是划分任务,即每一个线程处理不同的任务。

PFX组件

PFX包含两层功能,上层结构由两种结构化数据并行API组成:PLINQ和Parallel类下层结构则由任务并行类和辅助并行编程活动的结构组成。
image

PLINQ提供了丰富的功能:它能够自动完成并行工作,包括将工作划分成任务,在线程上执行任务,以及将结果整理为一个输出序列。它是声明式的,因为只要使用LINQ查询声明需要并行化的工作,然后让框架去处理实现细节即可。与声明式相对的形式是命令式(imperative),需要显式进行编码来执行划分和整理工作。

如下表所示:若使用Parallel类,则必须自行进行整理工作;若使用任务并行结构,还必须自行完成任务划分的工作。

划分工作 整理工作
PLINQ
Parallel类
PFX任务并行

PFX主要用于并行编程,即利用多核处理器来加速计算密集型代码的执行速度。

标签:简要,C#,编程,并行,任务,PFX,Parallel,PLINQ
From: https://www.cnblogs.com/nullcodeworld/p/16646898.html

相关文章

  • UE4中ProceduralMesh组件应用动态裁切Mesh
     Vertices即为顶点信息(顶点坐标为本地坐标,原点即为Actor根组件)。构建矩形需要4个顶点即可Triangles三角形信息。使用顶点进行三角形拼接,顺序不要乱,使用数组下标。第一......
  • [Google] LeetCode 150 Evaluate Reverse Polish Notation
    EvaluatethevalueofanarithmeticexpressioninReversePolishNotation.Validoperatorsare+,-,*,and/.Eachoperandmaybeanintegeroranotherexpres......
  • 【Vue项目】尚品汇(四)Search组件开发
    Search模块开发分析:1)编写静态页面2)编写api3)编写vuex三大件4)组件获取仓库数据,并进行动态展示1SearchSelector1编写apiexportconstreqGetSearchInfo=(params={}......
  • 在博客园的博客文章中自动播放 asciinema
    需求我的文章中都是用Markdown写的,所以嵌入的asciinema只能通过Embedimagelink的方式,这就导致打开文章页面后只有一个asciinema的预览图,点击图片后会跳转到asc......
  • 记一次使用docker搭建禅道
    相关docker-compose.yml内容如下version:'3.3'services:zentao:container_name:zentaoports:-'10011:80'volumes:......
  • TCP UDP
    无奈被怼了,赶紧梳理一下自己关于tcp和udp所了解的内容TCPTCP是面向连接的传输层协议,可以提供可保的传输服务。而且,TCP提供面向流的全双工通信。TCP在发送数据前需要经过......
  • 网络基础七层模型与TCP/IP协议
    1.网络基础1.1什么是网络网络就是计算机网络是一组计算机或网络设备通过有形的线缆或无形的媒介如无线,连接起来,按照一定的规则,进行通信的集合。网络通信就是指终端设......
  • 生成二维码并以图片格式下载-qrcodejs2
    1、安装qrcodejs2npminstallqrcodejs2--save2、在需要的页面引入importQRCodefrom"qrcodejs2";3、页面中使用<divid="qrcode"ref="qrcode"></div>4......
  • tomcat失去连接
    尝试各种方法均无效。包括更新tomcat的war包、重启tomcat。应用部署在三台机器上面,全部失去连接。在nginx上面查看日志,产生了一堆错误日志。其中包括了  2022/08/30......
  • 苹果出现一项非常霸气的证书,无需用mac电脑就能代理mac和macbook上线
    作为一名H5开发人员可以使用hbuilder或apicloud。但是,到打包和发布时,被申请ios证书和上架ipa文件给了困难。由于官方提供的方法,申请证书需要使用Mac计算机然后使用Mac计算......