【C#】并行编程实战:序章

news2025/2/12 20:18:28

前言

        本文主要是基于这本书学习的:

        《并行编程实战:基于C#8和.NET Core 3》,我当时买的实体书,长下面这个样子。我买了大概浏览了一下,感觉内容还行(基本都是没见过的新东西),所以打算认真学一下。

        配套的学习(原书)工程地址如下:

GitHub - PacktPublishing/Hands-On-Parallel-Programming-with-C-8-and-.NET-Core-3: Hands-On Parallel Programming with C# 8 and .NET Core 3, published by PacktHands-On Parallel Programming with C# 8 and .NET Core 3, published by Packt - GitHub - PacktPublishing/Hands-On-Parallel-Programming-with-C-8-and-.NET-Core-3: Hands-On Parallel Programming with C# 8 and .NET Core 3, published by Packthttps://github.com/PacktPublishing/Hands-On-Parallel-Programming-with-C-8-and-.NET-Core-3

         当然,作为一个Unity程序员,肯定是会尝试放到Unity里实践的。众所周知,Unity里其实是不建议多线程编程的,UnityEngine命名空间下的类都是只能在主线程调用的。然而,既然是C#运行程序,那就是可以执行多线程编程的。至于有什么好处,这个就不用赘述了,大家都知道。

        原书的工程配置是 VS 2019,一般对应的Unity工程是 2018版本。但是我肯定不会用这么老的版本,我使用的版本如下:

        Unity 2022.2.5 f1c1

        Visual Studio 2022.17.5.0

        .Net版本: .NET Standard 2.1 / v4.0.30319

        C#版本:9.0

        配置上来讲都是比较新的设定,理论上是可以完全兼容书上的版本,当然也可能会有很多坑会踩,这个就一边学习一边研究了。在后面学习的过程中,我把Unity升级到2022.2.20f1,也没有什么问题。我自己学习用的Unity工程地址如下:

魔术师Dix / HandsOnParallelProgramming · GitCode学习《并行编程实战:基于C#8和 .NET Core 3》这本书,配套建立了一个Unity工程。 因为是Unity程序员,自然是要在Unity上实践的。 一边学习一边更新。https://gitcode.net/cyf649669121/HandsOnParallelProgramming

章节目录

总共章节如下:

1. 线程、多任务和异步基础

  •   并行编程简介 
  •   任务并行性 
  •   实现数据并行 
  •   使用 PLINQ 

2. 支持.NET Core 中并行性的数据结构

  •   同步原语 
  •   使用并发集合 
  •   使用延迟初始化提高性能 

3. 使用C#进行异步编程

  •   异步编程详解 
  •   基于任务的异步编程基础 

4. 异步代码的调试、诊断和单元测试

  •   使用 Visual Studio 调试任务 
  •   编写并行和异步代码的单元测试用例 

5. .NET Core 附加的并行编程功能

  •   一些 Unity 多线程实例 
  •   并行编程中的模式 
  •   分布式存储管理

        其中有2个章节因为不符合我的学习目标,做了删改:

        第12章:ASP .NET Core 中的 IIS 和 Kestrel:大部分是服务器相关知识,这里主要是介绍客户单的多线程使用,因此改为了只介绍异步流。

        第14章:分布式存储管理:讲的主要是硬件相关的,没有什么意义,直接删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/639749.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机提示由于找不到VCRUNTIME140.dll,无法继续执行代码,重新安装程序可能会解决

vcruntime140.dll文件是一个动态链接库,是Windows操作系统中非常重要的一个动态链接库文件,用于支持使用Microsoft Visual C编译器创建的应用程序的运行。当我们运行的软件是有C编译器创建的程序,就需要到系统的vcruntime140.dll,…

数学模型:Python实现微分方程

文章摘要:微分方程的Python实现。 参考书籍:数学建模算法与应用(第3版)司守奎 孙玺菁。 PS1:只涉及了具体实现并不涉及底层理论。没有给出底层理论参考书籍的原因是不想做这个方向吧。所以对我只要掌握基本模型有个概念那就好了。 PS2&#x…

年度创新企业奖!移远通信成推动AIoT融合落地关键力量

6月8日,由ASPENCORE主办的2023国际AIoT生态发展大会在深圳召开,移远通信受邀出席大会并发表演讲,同时凭借在5G、AIoT等领域的持续创新荣获“年度创新企业”奖! 5GAIoT“双引擎” 重塑物联产业 近些年,从互联网、物联网…

汽车仪表中控开发中视频相关的一些知识点

前言: 做汽车仪表/IVI中控,尤其是IVI信息娱乐部分,都要涉及到视频这个知识点,各种概念很多,首先需要明确一条主线,那就是SDTV标清电视->HDTV高清电视->UHDTV超高清电视的一个发展脉络,BT601/656是SDTV标清电视接口,BT1120则对应HDTV高清电视接口。ITU-R BT.601/6…

2022 年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题

2022 年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题 一. 逻辑推理:第 26~55 小题,每小题 2 分,共 60 分。下列每题给出的 A、B、C、D、E 五个选项中,只有一项是符合试题要求的。 26.百年党史充分揭示了中国共产党为什么…

Qemu 逃逸基础知识

QEMU 与 KVM 架构 QEMU 与 KVM 的完整架构如下图所示。 QEMU 与 KVM 架构整体上分为 3 个部分: VMX root 模式的应用层,即图中左上部分,属于 qemu 进程。VMX root 模式的内核层,即图中下半部分,属于 kvm 驱动。VMX …

吴恩达471机器学习入门课程2第1周——手写数字识别(0和1)

用于手写数字识别的神经网络(0和1) 问题描述1.导入模块2. 数据集2.1 数据可视化 3 模型展示 使用神经网络来识别手写数字 0 和 1。 问题描述 在这个练习中,您将使用神经网络来识别手写数字“0”和“1”。这是一个二元分类任务。 自动手写数…

20JS11——JS对象

文章目录 一、对象二、创建对象的三种方式1、利用字面量创建对象1.1 使用对象1.2 变量、属性、函数、方法总结2、利用new Object创建对象3、利用构造函数创建对象(1)为什么使用构造函数?(2)利用构造函数创建对象&#…

Java8日期时间类LocalDateTime格式化

LocalDateTime日期时间格式化 LocalDateTime localDateTime LocalDateTime.now() System.out.println(now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")测…

000网络常见的资源推荐

博客 分类: 图解网络 | 小白debug有时骚话连篇,有时硬核图解https://xiaobaidebug.top/categories/%E5%9B%BE%E8%A7%A3%E7%BD%91%E7%BB%9C/网络攻击常见手段总结 | JavaGuide(Java面试 学习指南)本文整理完善自TCP/IP 常见攻击手段 - 暖蓝笔记 - 2021这篇文章。 这…

window下安装docker并运行angular项目

window下安装docker并运行angular项目 1、使用场景 本地有一个node项目,node 版本是 v16.13.2,在本地安装的angular 是 15.2.4 但是测试服上面的node 版本是 14.19.3,angular 是1.0.0-beta.28.3 ,会导致angular项目的 ng build …

吴恩达471机器学习入门课程1第3周——逻辑回归

文章目录 Logistic Regression1、导包2、逻辑回归2.1、问题描述2.2、加载数据集数据可视化 2.3、sigmod function2.4 逻辑回归的代价函数2.5 逻辑回归的梯度2.6 使用梯度下降学习参数 测试可视化2.8 评估逻辑回归 3、 正则化逻辑回归3.1 问题陈述3.2 加载和可视化数据3.3 特征映…

大模型部署实战(二)——Ziya-BLIP2-14B-Visual

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

第3章“程序的机器级表示”:存储器的越界引用和缓冲区溢出

已经看到,C 对于数组引用不进行任何边界检查,而且局部变量和状态信息(如寄存器值和返回指针)都存放在栈中。这两种情况结合到一起就能导致严重的程序错误,一个对越界的数组元素的写操作破坏了存储在栈中的状态信息。然…

60题学会动态规划系列:动态规划算法第三讲

简单多状态问题 文章目录 一.按摩师二.打家劫舍系列三.删除并获得点数四.粉刷房子 1.按摩师 力扣链接:力扣 一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预…

java泛型学习

前言 没有泛型的时候,我们声明的 List 集合默认是可以存储任意类型元素的,乍一看你可能还会觉得挺好,这样功能强大,啥类型都可以存储......但是开发的时候由于不知道集合中元素的确切类型,遍历的时候我们拿到的 item …

路径规划算法:基于供需优化的路径规划算法- 附代码

路径规划算法:基于供需优化的路径规划算法- 附代码 文章目录 路径规划算法:基于供需优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法供需…

图形编辑器开发:最基础但却复杂的选择工具

大家好,我是前端西瓜哥。 对于一个图形设计软件,它最基础的工具是什么?选择工具。 但这个选择工具,却是相当的复杂。这次我来和各位,细说细说选择工具的一些弯弯道道。 我正在开发的图形设计工具的: http…

复习并发编程的基础知识(二)

线程的状态6种状态及生命周期 1.new 2.Runnable(Ready和Running) 3.Blocked 4.Waiting 5.Timed_Waiting 6.Terminated 线程同步 同步:一些敏感的数据(比如共享的需要修改的资源)不允许被多个线程同时访问&#…

centos7 gitlab安装配置

gitlab概述 GitLab是一个基于Web的Git存储库管理和代码协作平台。它提供了一套完整的工具和功能,使团队能够更高效地进行代码版本控制、协作开发和持续集成/持续部署(CI/CD)。 以下是GitLab的主要功能和概述: 版本控制系统&…