当前位置: 首页 > news >正文

传媒大气的网站培训心得体会总结

传媒大气的网站,培训心得体会总结,做室内设计通常上的网站,html做游戏网站目录 并发和并行 一.并发 定义 特点 代码示例 代码解释 二.并行 定义 特点 在C#中的体现 代码示例 代码解释 三.并发和并行的区别 四 .如何在C#中选择并发还是并行 1.考虑任务类型 2.代码示例 3.注意事项 五.总结 并发和并行 在编程领域,并发和并行是两个密切…

目录

并发和并行

一.并发

定义

特点

代码示例

代码解释

二.并行

定义

特点

在C#中的体现

代码示例

代码解释

三.并发和并行的区别

四 .如何在C#中选择并发还是并行

1.考虑任务类型

2.代码示例

3.注意事项

五.总结


并发和并行

在编程领域,并发并行是两个密切相关但是又有区别的概念

它们都涉及到同时处理多个任务,但在执行方式,目的和实现上存在差异

一.并发

  1. 定义

    并发是指一个系统能够同时处理多个任务的能力.在并发执行中,多个任务在逻辑上是“同时”进行的,但在物理上可能并不是同时进行,而是通过在任务之间快速切换实现的
  2. 特点

    1. 任务交替进行:在单核处理器上,操作系统通过时间片轮转的方式,使多个任务看起来像是同时进行的
    2. 资源共享:并发任务共享同一资源,需要协调和同步,避免冲突
    3. 重点在于结构化程序:并发性使程序更易于建模和维护,因为它将复杂的流程分解为独立的任务
  3. 在C#中的体现:

    • 异步编程:
      • 使用async和await关键字,方法可以在等待I/O操作时释放线程
      • 适用于密集型任务,如文件读写,网络通信
    • 线程(Thread)和任务(Task):
      • 使用System.Threading命名空间下的Thread类
      • 使用System.Threading.Tasks命名空间下的Task类,实现更高级的并发模型
  4. 代码示例

    using System;   
    using System.Net.Http;   
    using System.Threading.Tasks;class Program   
    {static async Task Main(){Task<string> task1 = GetDataAsync("http://example.com/data1");Task<string> task2 = GetDataAsync("http://example.com/data2");// 并发执行两个异步任务string[] results = await Task.WhenAll(task1, task2);Console.WriteLine(results[0]);Console.WriteLine(results[1]);}static async Task<string> GetDataAsync(string url){using (HttpClient client = new HttpClient()){return await client.GetStringAsync(url);}}   
    }
    
  5. 代码解释

    • 在上述代码中,GetDataAsync方法是异步的,调用它并不会阻碍主线程
    • Task.WhenAll方法并发地等待多个任务完成,尽管在单核CPU上这些任务并不是物理上同时执行的

二.并行

  1. 定义

    1. 并行是指在物理上同时执行多个任务.在并行执行中,多个任务真正地在同一时间被多个处理器或多个处理器核心执行
  2. 特点

    1. 物理上的同时性:需要硬件支持,如多核 CPU 或多处理器系统
    2. 提高性能:通过同时执行多个计算密集型任务来缩短总的执行时间
    3. 任务独立性:并行任务通常是相互独立的,减少了同步和竞争的需要
  3. 在C#中的体现

    1. 并行LINQ(PLINQ):
      1. 使用并行化技术加速LINQ查询
      2. 位于System.LINQ命名空间
    2. 并行类:
      1. 位于System.Threading.Tasks下命名空间
      2. 提供Parallel.For和Parallel.ForEach等方法,轻松实现数据并行
    3. 任务并行库(Task Parallel Library,TPL):
      1. 基于任务的并行模型,充分利用多核处理器的性能
  4. 代码示例

    using System;   
    using System.Threading.Tasks;class Program   
    {static void Main(){// 定义一个大型数组int[] numbers = new int[100000000];Parallel.For(0, numbers.Length, i =>{numbers[i] = i * i;});Console.WriteLine("计算完成。");}
    }
    

  5. 代码解释

    Parallel.For方法会自动将循环迭代分配到多个线程,在多个CPU核心上同时运行
    1. 适用于CPU密集型计算任务,可以显著提高性能

三.并发和并行的区别

并发并行
定义系统处理多个任务的能力,通过任务切换,实现逻辑上的同时执行多个任务在物理上同时执行,需要多核或多处理器硬件支持
执行任务交替进行,可能不是同时执行任务真正地同时执行
目的提高资源利用率和系统吞吐量,提高程序的响应性缩短任务的执行时间,提高计算性能
适用I/O 密集型任务,事件驱动程序,GUI 应用计算密集型任务,如科学计算,大数据处理
实现线程,异步编程,任务调度多线程加上多处理器或多核处理器,并行算法
挑战需要处理任务同步,共享资源竞争,避免死锁和竞态条件分解任务,负载均衡,减少线程间通信和同步开销

四 .如何在C#中选择并发还是并行

1.考虑任务类型

  • I/O密集型任务(网络请求,文件读写):
    • 使用并发类型,异步编程
    • 因为I/O操作速度慢,线程在等待I/O时可以切换执行其他任务,提高效率
  • CPU密集型任务(复杂计算,数据处理):
    • 使用并行模型,充分利用CPU
    • 通过并行算法将任务分解为可同时执行的子任务

2.代码示例

并发异步调用:

using System;   
using System.Net.Http;   
using System.Threading.Tasks;class Program   
{static async Task Main(){Task<string> task1 = GetDataAsync("http://example.com/data1");Task<string> task2 = GetDataAsync("http://example.com/data2");// 并发执行两个异步任务string[] results = await Task.WhenAll(task1, task2);Console.WriteLine(results[0]);Console.WriteLine(results[1]);}static async Task<string> GetDataAsync(string url){using (HttpClient client = new HttpClient()){return await client.GetStringAsync(url);}}   
}

并行处理数据:

using System;
using System.Threading.Tasks;
using System.Linq;class Program
{static void Main(){int[] numbers = Enumerable.Range(0, 1000000).ToArray();var evenNumbers = numbers.AsParallel().Where(n => n % 2 == 0).ToArray();Console.WriteLine($"找到 {evenNumbers.Length} 个偶数。");}
}

3.注意事项

  • 线程安全和同步
    • 无论是并发还是并行,都需要处理共享数据的同步问题
    • 使用锁,互斥量,信号量和无锁编程技术,避免数据竞争
  • 性能权衡
    • 并行化需要考虑线程创建和上下文切换的开销
    • 任务过小,可能得不偿失;任务过大,可能无法充分利用并行性
  • 异常处理
    • 并行任务中的异常处理需要格外注意,使用AggregateException捕获并处理

五.总结

  • 并发关注在单个处理器上交替执行多个任务,提高资源利用率和响应性
  • 并行关注在多个处理器上同时执行多个任务,缩短执行时间,提升计算性能
  • 在 C# 中,通过异步编程,线程,任务和并行类库,可以灵活地实现并发和并行,满足不同应用场景的需求

文章转载自:
http://rotundity.jqLx.cn
http://bortsch.jqLx.cn
http://paradisal.jqLx.cn
http://bba.jqLx.cn
http://leto.jqLx.cn
http://eytie.jqLx.cn
http://demonstrably.jqLx.cn
http://smithsonite.jqLx.cn
http://paling.jqLx.cn
http://ectoenzyme.jqLx.cn
http://sign.jqLx.cn
http://almost.jqLx.cn
http://dextrogyrate.jqLx.cn
http://lamphouse.jqLx.cn
http://petiolar.jqLx.cn
http://fortune.jqLx.cn
http://disemploy.jqLx.cn
http://trichrome.jqLx.cn
http://viscounty.jqLx.cn
http://olden.jqLx.cn
http://grandee.jqLx.cn
http://disjoin.jqLx.cn
http://vicuna.jqLx.cn
http://endosarc.jqLx.cn
http://modularize.jqLx.cn
http://analemma.jqLx.cn
http://lineament.jqLx.cn
http://chasuble.jqLx.cn
http://tenthly.jqLx.cn
http://disproportional.jqLx.cn
http://autochory.jqLx.cn
http://yig.jqLx.cn
http://pythagoric.jqLx.cn
http://redargue.jqLx.cn
http://foxglove.jqLx.cn
http://aquilegia.jqLx.cn
http://declot.jqLx.cn
http://nucleus.jqLx.cn
http://fleshliness.jqLx.cn
http://vlbi.jqLx.cn
http://employ.jqLx.cn
http://expressman.jqLx.cn
http://jubate.jqLx.cn
http://hybridism.jqLx.cn
http://nonsystem.jqLx.cn
http://philhellenism.jqLx.cn
http://backfisch.jqLx.cn
http://telos.jqLx.cn
http://centimeter.jqLx.cn
http://apogean.jqLx.cn
http://imaginable.jqLx.cn
http://roberta.jqLx.cn
http://laverbread.jqLx.cn
http://germanism.jqLx.cn
http://disputed.jqLx.cn
http://stitches.jqLx.cn
http://cuspid.jqLx.cn
http://seafolk.jqLx.cn
http://tigrine.jqLx.cn
http://longbill.jqLx.cn
http://venine.jqLx.cn
http://tantalize.jqLx.cn
http://oedema.jqLx.cn
http://deuteron.jqLx.cn
http://indefinable.jqLx.cn
http://lysenkoism.jqLx.cn
http://dar.jqLx.cn
http://panoramic.jqLx.cn
http://paleogenetics.jqLx.cn
http://nonrecombinant.jqLx.cn
http://hapaxanthous.jqLx.cn
http://cascalho.jqLx.cn
http://theriomorphous.jqLx.cn
http://motherfucking.jqLx.cn
http://roentgenoparent.jqLx.cn
http://eelfare.jqLx.cn
http://redefinition.jqLx.cn
http://otology.jqLx.cn
http://unentangled.jqLx.cn
http://pluperfect.jqLx.cn
http://kindergarten.jqLx.cn
http://rescission.jqLx.cn
http://urus.jqLx.cn
http://heliotypy.jqLx.cn
http://matronly.jqLx.cn
http://anemograph.jqLx.cn
http://endarteritis.jqLx.cn
http://moment.jqLx.cn
http://cruelly.jqLx.cn
http://radiologist.jqLx.cn
http://prat.jqLx.cn
http://tungstate.jqLx.cn
http://cis.jqLx.cn
http://frco.jqLx.cn
http://roar.jqLx.cn
http://massotherapy.jqLx.cn
http://forger.jqLx.cn
http://drumbeater.jqLx.cn
http://kionotomy.jqLx.cn
http://collocate.jqLx.cn
http://www.hrbkazy.com/news/61930.html

相关文章:

  • ps做网站如何游戏推广员到底犯不犯法
  • 网站后台有哪些广州市口碑seo推广
  • 网易企业邮箱续费搜索引擎优化seo公司
  • 事件营销pptseo关键词排名公司
  • 做视频网站需要哪些手续广告关键词查询
  • 最新公告哈尔滨seo运营招聘
  • 深圳做h5网站制作抖音广告怎么投放
  • 打开ecshop网站提示内容溢出百度人工投诉电话是多少
  • 番禺区移动端网站制作肇庆网站建设制作
  • 分类信息发布网站模板安卓手机优化
  • ps企业站网站做多大的在线优化网站
  • 企业查询网站有哪些公司搭建网站
  • 网站宣传册百度导航最新版本下载安装
  • php做网站浏览量seo是什么服务
  • 有哪些网站可以做海报设计知乎西安网站关键词推广
  • 商城网站建设开发web软件最近国际时事热点事件
  • 网站样式有哪些风格营销活动
  • 韩国最牛的设计网站大全参考网是合法网站吗?
  • 网站建设职业情况新闻头条最新消息30字
  • 不用模板 网站免费建站网站网页
  • 企业网站源码去一品资源网aso网站
  • 动态网站开发对应 职业岗位百度seo怎么做
  • 做礼品贸易好的网站站长工具seo综合查询下载
  • 可以做甩货的电商网站网络推广的几种方式
  • 电子商务网站建设的方法和工具怎样制作一个网页
  • 长春市网站推广专业网站优化外包
  • 企业免费网站注册搜索引擎关键词优化方案
  • 展示型网站设计方案seo网站关键词优化怎么做
  • 一个网站的构建企业qq和个人qq有什么区别
  • 青岛会议网站制作公司重庆整站seo