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

门户网站指的是什么中国设计网简介

门户网站指的是什么,中国设计网简介,百姓网交友征婚,做电商的几个网站吗文章目录 ⭐前言⭐一、同步编程:简单但低效的线性执行🌟代码示例🌟执行流程示意图🌟同步编程特点 ⭐二、异步编程:非阻塞的高效执行🌟代码示例🌟执行流程示意图🌟异步编程核心机制&a…

文章目录

  • ⭐前言
  • ⭐一、同步编程:简单但低效的线性执行
    • 🌟代码示例
    • 🌟执行流程示意图
    • 🌟同步编程特点
  • ⭐二、异步编程:非阻塞的高效执行
    • 🌟代码示例
    • 🌟执行流程示意图
    • 🌟异步编程核心机制
    • 🌟适用场景
  • ⭐三、并行异步编程:最大化性能
    • 🌟代码示例
    • 🌟执行流程示意图
    • 🌟并行异步优势
  • ⭐四、同步 vs 异步 vs 并行异步:对比总结
  • ⭐五、实际开发中的选择建议
    • 🌟何时用同步?
    • 🌟何时用异步?
    • 🌟何时用并行异步?
  • ⭐总结


标题详情
作者JosieBook
头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师
博客内容开源、框架、软件工程、全栈(,NET/Java/Python/C++)、数据库、操作系统、大数据、人工智能、工控、网络、程序人生
口号成为你自己,做你想做的
欢迎三连👍点赞、✍评论、⭐收藏

⭐前言

在现代软件开发中,高效的资源利用和响应速度是衡量程序质量的重要指标。C# 作为一门支持多范式编程的语言,提供了强大的同步和异步编程模型。本文将通过代码示例、示意图和场景分析,带你深入理解这两种编程模式的差异及适用场景。

⭐一、同步编程:简单但低效的线性执行

🌟代码示例

using System;
using System.Threading;class Program
{static void Main(){Console.WriteLine("同步示例开始");DoTask1();    // 同步执行任务1(阻塞)DoTask2();    // 任务1完成后执行任务2(阻塞)Console.WriteLine("同步示例结束");}static void DoTask1(){Console.WriteLine("任务1开始");Thread.Sleep(2000); // 模拟耗时操作(阻塞当前线程)Console.WriteLine("任务1完成");}static void DoTask2(){Console.WriteLine("任务2开始");Thread.Sleep(1000);Console.WriteLine("任务2完成");}
}

🌟执行流程示意图

时间轴(单位:ms):
0    1000    2000    3000
|-----|-----|-----|-----|
主线程:
[开始] --> [DoTask1 (2000ms阻塞)] --> [DoTask2 (1000ms阻塞)] --> [结束]
任务流程:|========任务1========||==任务2==|
总耗时:3000ms

🌟同步编程特点

  • 顺序执行:任务必须严格按代码顺序完成。

  • 线程阻塞:Thread.Sleep 或I/O操作会冻结当前线程。

  • 资源浪费:线程在等待时无法处理其他任务。

  • 适用场景:简单脚本、快速原型开发或CPU密集型计算。

⭐二、异步编程:非阻塞的高效执行

🌟代码示例

using System;
using System.Threading.Tasks;class Program
{static async Task Main() // C# 7.1+ 支持异步Main方法{Console.WriteLine("异步示例开始");await DoTask1Async(); // 异步等待任务1await DoTask2Async(); // 任务1完成后异步等待任务2Console.WriteLine("异步示例结束");}static async Task DoTask1Async(){Console.WriteLine("任务1开始");await Task.Delay(2000); // 非阻塞的异步等待Console.WriteLine("任务1完成");}static async Task DoTask2Async(){Console.WriteLine("任务2开始");await Task.Delay(1000);Console.WriteLine("任务2完成");}
}

🌟执行流程示意图

时间轴(单位:ms):
0    1000    2000    3000
|-----|-----|-----|-----|
主线程:
[开始] --> [启动DoTask1Async] --(释放线程)--> [等待DoTask1完成] --> [启动DoTask2Async] --(释放线程)--> [等待DoTask2完成] --> [结束]
任务流程:|========任务1========||==任务2==|
总耗时:3000ms

🌟异步编程核心机制

  • async/await 关键字

    • async 标记方法为异步,允许内部使用 await。

    • await 暂停当前方法,将控制权交回调用方,直到异步操作完成。

  • 状态机:编译器将异步方法转换为状态机,管理异步操作的暂停与恢复。

  • 线程池协作:I/O操作(如文件读写、网络请求)通过操作系统回调通知完成,不占用线程资源。

🌟适用场景

  • UI应用程序:避免界面冻结(如WPF、WinForms)。

  • Web服务:高并发请求处理(如ASP.NET Core)。

  • 文件/网络操作:减少等待时间。

⭐三、并行异步编程:最大化性能

🌟代码示例

static async Task Main()
{Console.WriteLine("并行异步示例开始");var task1 = DoTask1Async(); // 立即启动任务1var task2 = DoTask2Async(); // 立即启动任务2await Task.WhenAll(task1, task2); // 并行等待所有任务Console.WriteLine("并行异步示例结束");
}

🌟执行流程示意图

时间轴(单位:ms):
0    1000    2000    3000
|-----|-----|-----|-----|
主线程:
[开始] --> [同时启动Task1和Task2] --> [等待所有任务完成] --------------------------> [结束]
任务流程:|========任务1========||==任务2==|
总耗时:2000ms(取决于最长任务)

🌟并行异步优势

  • 并发执行:多个任务同时启动,充分利用系统资源。

  • 性能优化:总耗时由最慢的任务决定,而非所有任务耗时的总和。

  • 资源效率:适合处理大量独立I/O操作(如批量API调用)。

⭐四、同步 vs 异步 vs 并行异步:对比总结

在这里插入图片描述

⭐五、实际开发中的选择建议

🌟何时用同步?

  • 任务简单且无需并发。

  • 操作是CPU密集型(如图像处理)。

🌟何时用异步?

  • 涉及I/O操作(数据库、API调用)。

  • 需要保持UI响应性。

  • 单任务依赖外部资源。

🌟何时用并行异步?

  • 多个独立任务可同时执行。

  • 需要优化吞吐量(如微服务架构)。

⭐总结

同步编程是代码世界的“单行道”,简单但容易拥堵;异步编程则是“立交桥”,通过智能调度提升效率;并行异步则像“多车道高速公路”,最大化资源利用率。理解它们的差异后,开发者可以根据具体场景灵活选择,从而编写出既高效又优雅的C#代码。无论是构建响应式UI还是高并发服务,异步编程都是现代C#开发者必须掌握的核心技能。


标题详情
作者JosieBook
头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师
博客内容开源、框架、软件工程、全栈(,NET/Java/Python/C++)、数据库、操作系统、大数据、人工智能、工控、网络、程序人生
口号成为你自己,做你想做的
欢迎三连👍点赞、✍评论、⭐收藏
http://www.dtcms.com/wzjs/839178.html

相关文章:

  • 枣庄市建设项目环评备案网站工艺品网站建设开发
  • 企业网站推广营销网站结构设计怎么写
  • 做网站外包大学生深圳软件公司定制开发
  • ui做的好的网站品牌产品策划方案
  • 免费网站建设模板下载自动连点器
  • 怎么做网站一个平台可以做ppt的网站
  • 网站调研方法有哪些内容网站开发合同审核要点
  • 桂林北站到象鼻山景区怎么坐车wordpress怎么做双语站
  • 做网站的5要素互联网销售
  • 建设厅网站上报名网站过期后
  • 网站中的公司地址怎么做外贸获客渠道有哪些
  • 章丘建设局网站单产品网站建设
  • 织梦做音乐网站寻找合肥网站建设
  • 企业网站的推广形式有wordpress 加入引导页
  • 农产品网站策划大同网站建设制作哪家好
  • 经典网站建设方案长锦船公司网站
  • 高碑店做网站的公司做网站推广托管注意
  • dedecms网站怎么搬家删除wordpress
  • 做视频网站注意事项东城区网站排名seo
  • iis 网站没有上传权限程序员分为六个等级
  • 关于手表的网站贵阳花果园r区网站建设
  • 营销型网站用什么系统工商局网站实名认证怎么做
  • 口碑营销平台短视频seo服务
  • 服装 营销型网站案例wordpress cloud fountry
  • 大连 做网站网站建设7个基
  • 网站建设设计时代创信好wordpress云储存缩略图wpjam
  • 网站建设完成汇报北京企业官网网站建设报价
  • 高端手机网站设计wordpress默认中文
  • 怎么通过做网站来赚钱吗天津在线制作网站
  • 有微重庆网站吗企业管理系统项目经历