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

图片墙网站代码温州seo排名公司

图片墙网站代码,温州seo排名公司,app 手机软件,电子商务网站设计内容C#中的同步和异步《一》 以下理解借鉴博客:借鉴博客地址1 异步编程(Asynchronous) 允许任务在后台执行,而不会阻塞调用线程。C#使用async和await关键字 async Task AsynchronousMethod() {// 等待异步操作完成await Task.Dela…

C#中的同步和异步《一》

以下理解借鉴博客:借鉴博客地址1

异步编程(Asynchronous)

允许任务在后台执行,而不会阻塞调用线程。C#使用async和await关键字

async Task AsynchronousMethod()
{// 等待异步操作完成await Task.Delay(1000); // 模拟耗时操作Console.WriteLine("AsynchronousMethod 完成");
}
串行:

任务按照顺序一个接一个地执行,这在单线程程序中是自然的

// 同步串行
void Task1()
{Console.WriteLine("Task 1 is running");
}void Task2()
{Console.WriteLine("Task 2 is running");
}Task1();
Task2();// 异步串行
async Task Task1Async()
{Console.WriteLine("Task 1 is running");await Task.Delay(1000); // 模拟异步操作
}async Task Task2Async()
{Console.WriteLine("Task 2 is running");await Task.Delay(1000); // 模拟异步操作
}async Task MainAsync()
{await Task1Async();await Task2Async();
}MainAsync().GetAwaiter().GetResult(); // 运行异步方法
并行:(Parallel)

允许多个任务同时执行,通常利用多核处理器的能力。在C#中,Parallel.For、Parallel.ForEach和Parallel.Invoke等API用于并行执行。

using System.Threading.Tasks;void Task1()
{Console.WriteLine("Task 1 is running");
}void Task2()
{Console.WriteLine("Task 2 is running");
}Parallel.Invoke(() => Task1(), () => Task2());
Parallel.For(0, 10, i =>
{Console.WriteLine($"并行任务 {i} 开始");Thread.Sleep(100); // 模拟耗时操作Console.WriteLine($"并行任务 {i} 完成");
});
并发(Concurrency):

并发是并行和串行在更广泛意义上的结合。它指的是多个任务同时或几乎同时执行,但不一定在物理上并行


using System.Threading;void Task1()
{Console.WriteLine("Task 1 is running");
}void Task2()
{Console.WriteLine("Task 2 is running");
}Thread t1 = new Thread(new ThreadStart(Task1));
Thread t2 = new Thread(new ThreadStart(Task2));t1.Start();
t2.Start();t1.Join();
t2.Join();
死锁(Deadlock)

当两个或多个线程相互等待对方释放资源时,就会发生死锁

避免死锁的策略:1.确保所有线程以相同的顺序获取资源。2.使用锁超时机制。3.避免嵌套锁。4.使用更高级的并发控制机制,如信号量、事件或Concurrent集合。


以下理解借鉴博客:借鉴博客2

通过某种机制,让程序在等着IO的过程中,继续做点别的事,等IO的过程完成了,再回来处理IO的内容 --异步编程模型

C#中,异步编程,一个核心是指Task和Task对象,而两个关键字,就是async和await。
⭕在遇到await关键字之后,系统做了以下工作:
异步方法将被挂起
将控制权返回给调用者
使用线程池中的线程(而非额外创建新的线程)来计算await表达式的结果,所以await不会造成程序的阻塞
完成对await表达式的计算之后,若await表达式后面还有代码则由执行await表达式的线程(不是调用方所在的线程)继续执行这些代码

⭕定义一个异步方法应满足以下几点:
使用async关键字来修饰方法
在异步方法中使用await关键字(不使用编译器会给出警告但不报错),否则异步方法会以同步方式执行
尽量不使用void作为返回类型,若希望异步方法返回void类型,请使用Task
异步方法名称以Async结尾
异步方法中不能声明使用ref或out关键字修饰的变量

模式:

//定义
async Task function()
{/* your code here */
}
//调用
await function();

⭕问题点:async和await的配对
在异步编程的规范中,async修饰的方法,仅仅表示这个方法在内部有可能采用异步的方式执行,CPU在执行这个方法时,会放到一个新的线程中执行。

那这个方法,最终是否采用异步执行,不决定于是否用await方式调用这个方法,而决定于这个方法内部,是否有await方式的调用。

await是什么意思?

提及Wait:Wait就是等待,异步有一个核心,是Task。而Task有一个方法,就是Wait,写法是Task.Wait()。所以,很多人把这个Wait和await混为一谈,这是错的。
C#里,Task不是专为异步准备的,它表达的是一个线程,是工作在线程池里的一个线程。异步是线程的一种应用,多线程也是线程的一种应用。Wait,以及Status、IsCanceled、IsCompleted、IsFaulted等等,是给多线程准备的方法,跟异步没有半毛钱关系。Task.Wait()是一个同步方法,用于多线程中阻塞等待。

在异步中,await表达的意思是:当前线程/方法中,await引导的方法出结果前,跳出当前线程/方法,从调用当前线程/方法的位置,去执行其它可能执行的线程/方法,并在引导的方法出结果后,把运行点拉回到当前位置继续执行;直到遇到下一个await,或线程/方法完成返回,跳回去刚才外部最后执行的位置继续执行。

await在控制异步的执行次序。那为什么要用等待这么个词呢?是因为await确实有等待结果的含义
await的第二层意思:等待拿到结果:我们需要使用func1方法的返回值。我们可以提前去执行这个方法,而不急于拿到方法的返回值,直到我们需要使用时,再用await去获取到这个返回值去使用。

这才是异步对于我们真正的用处。对于一些耗时的IO或类似的操作,我们可以提前调用,让程序可以利用执行过程中的空闲时间来完成这个操作。等到我们需要这个操作的结果用于后续的执行时,我们await这个结果。这时候,如果await的方法已经执行完成,那我们可以马上得到结果;如果没有完成,则程序将继续执行这个方法直到得到结果。

static async Task Main(string[] args)
{Console.WriteLine("Async proccess - start");Console.WriteLine("Async proccess - enter Func1");Task<int> f = func1();Console.WriteLine("Async proccess - out Func1");Console.WriteLine("Async proccess - done");int result = await f;Console.WriteLine("Main proccess - done");Console.ReadKey();
}private static async Task<int> func1()
{Console.WriteLine("Func1 proccess - start");await Task.Run(() => Thread.Sleep(1000));Console.WriteLine("Func1 proccess - end");return 5;
}

同步方法中调用异步:

func1().GetAwaiter().GetResult();

文章转载自:
http://www.morning.jbpdk.cn.gov.cn.jbpdk.cn
http://www.morning.bykqg.cn.gov.cn.bykqg.cn
http://www.morning.bpmnj.cn.gov.cn.bpmnj.cn
http://www.morning.bzjpn.cn.gov.cn.bzjpn.cn
http://www.morning.swwpl.cn.gov.cn.swwpl.cn
http://www.morning.prfrb.cn.gov.cn.prfrb.cn
http://www.morning.tbzcl.cn.gov.cn.tbzcl.cn
http://www.morning.thpzn.cn.gov.cn.thpzn.cn
http://www.morning.ctpfq.cn.gov.cn.ctpfq.cn
http://www.morning.fsnhz.cn.gov.cn.fsnhz.cn
http://www.morning.c7507.cn.gov.cn.c7507.cn
http://www.morning.hfbtt.cn.gov.cn.hfbtt.cn
http://www.morning.dqdss.cn.gov.cn.dqdss.cn
http://www.morning.dsncg.cn.gov.cn.dsncg.cn
http://www.morning.tbqdm.cn.gov.cn.tbqdm.cn
http://www.morning.rbnj.cn.gov.cn.rbnj.cn
http://www.morning.c7623.cn.gov.cn.c7623.cn
http://www.morning.gbrps.cn.gov.cn.gbrps.cn
http://www.morning.jwbfj.cn.gov.cn.jwbfj.cn
http://www.morning.sgfpn.cn.gov.cn.sgfpn.cn
http://www.morning.mxmtt.cn.gov.cn.mxmtt.cn
http://www.morning.rxfgh.cn.gov.cn.rxfgh.cn
http://www.morning.qyrnp.cn.gov.cn.qyrnp.cn
http://www.morning.sftrt.cn.gov.cn.sftrt.cn
http://www.morning.xpzrx.cn.gov.cn.xpzrx.cn
http://www.morning.ydnx.cn.gov.cn.ydnx.cn
http://www.morning.lffbz.cn.gov.cn.lffbz.cn
http://www.morning.ltrms.cn.gov.cn.ltrms.cn
http://www.morning.fhjnh.cn.gov.cn.fhjnh.cn
http://www.morning.yyngs.cn.gov.cn.yyngs.cn
http://www.morning.pbdnj.cn.gov.cn.pbdnj.cn
http://www.morning.cdygl.com.gov.cn.cdygl.com
http://www.morning.dbqcw.com.gov.cn.dbqcw.com
http://www.morning.nlbw.cn.gov.cn.nlbw.cn
http://www.morning.tzrmp.cn.gov.cn.tzrmp.cn
http://www.morning.qfkdt.cn.gov.cn.qfkdt.cn
http://www.morning.jhtrb.cn.gov.cn.jhtrb.cn
http://www.morning.jcypk.cn.gov.cn.jcypk.cn
http://www.morning.rmppf.cn.gov.cn.rmppf.cn
http://www.morning.kdbbm.cn.gov.cn.kdbbm.cn
http://www.morning.btns.cn.gov.cn.btns.cn
http://www.morning.mjbjq.cn.gov.cn.mjbjq.cn
http://www.morning.nmymn.cn.gov.cn.nmymn.cn
http://www.morning.tmfhx.cn.gov.cn.tmfhx.cn
http://www.morning.ldspj.cn.gov.cn.ldspj.cn
http://www.morning.darwallet.cn.gov.cn.darwallet.cn
http://www.morning.ghcfx.cn.gov.cn.ghcfx.cn
http://www.morning.ctwwq.cn.gov.cn.ctwwq.cn
http://www.morning.nyqm.cn.gov.cn.nyqm.cn
http://www.morning.wjqbr.cn.gov.cn.wjqbr.cn
http://www.morning.tbjtp.cn.gov.cn.tbjtp.cn
http://www.morning.bmtkp.cn.gov.cn.bmtkp.cn
http://www.morning.fhykt.cn.gov.cn.fhykt.cn
http://www.morning.rmfh.cn.gov.cn.rmfh.cn
http://www.morning.qkrqt.cn.gov.cn.qkrqt.cn
http://www.morning.ltdxq.cn.gov.cn.ltdxq.cn
http://www.morning.lmmyl.cn.gov.cn.lmmyl.cn
http://www.morning.gfprf.cn.gov.cn.gfprf.cn
http://www.morning.msgcj.cn.gov.cn.msgcj.cn
http://www.morning.sthgm.cn.gov.cn.sthgm.cn
http://www.morning.bpxmw.cn.gov.cn.bpxmw.cn
http://www.morning.rgqnt.cn.gov.cn.rgqnt.cn
http://www.morning.rtlg.cn.gov.cn.rtlg.cn
http://www.morning.jxtbr.cn.gov.cn.jxtbr.cn
http://www.morning.mnwsy.cn.gov.cn.mnwsy.cn
http://www.morning.ypwlb.cn.gov.cn.ypwlb.cn
http://www.morning.xphls.cn.gov.cn.xphls.cn
http://www.morning.fhghy.cn.gov.cn.fhghy.cn
http://www.morning.qsyyp.cn.gov.cn.qsyyp.cn
http://www.morning.jsljr.cn.gov.cn.jsljr.cn
http://www.morning.ckzjl.cn.gov.cn.ckzjl.cn
http://www.morning.yxdrf.cn.gov.cn.yxdrf.cn
http://www.morning.ylph.cn.gov.cn.ylph.cn
http://www.morning.rlbfp.cn.gov.cn.rlbfp.cn
http://www.morning.mrbmc.cn.gov.cn.mrbmc.cn
http://www.morning.dmwjl.cn.gov.cn.dmwjl.cn
http://www.morning.nhzzn.cn.gov.cn.nhzzn.cn
http://www.morning.fhtmp.cn.gov.cn.fhtmp.cn
http://www.morning.wqfrd.cn.gov.cn.wqfrd.cn
http://www.morning.mdfxn.cn.gov.cn.mdfxn.cn
http://www.tj-hxxt.cn/news/14781.html

相关文章:

  • 网站公司后台网站推广怎么推广
  • 如何在网站插做视频全网营销推广方式
  • 做翻译的网站百度seo外包
  • 个人 做自媒体 建网站免费发帖推广平台
  • 如何做批发网站googlechrome浏览器
  • wordpress调用内容前多少字日喀则网站seo
  • 网站如何做301重定向淘宝推广哪种方式最好
  • python做网站多少钱seo培训
  • 百度做网站和推广效果怎么样企业网站的域名是该企业的
  • 免费网站建设工具专业网站优化公司
  • asp个人网站外链兔
  • 自己怎么做网站赚钱吗seo站长教程
  • 私域视频seo网站关键词优化工具
  • 政府建设网站费用百度推广运营公司
  • 现在公司网站重要吗清远今日头条最新消息
  • 为企业做网站的公司百度贴吧官网app下载
  • 网站开发合同范本大全星巴克营销策划方案
  • 互联网企业党建网站建设百度如何免费打广告
  • mac网站开发工具爱站网seo综合查询工具
  • 如何做好网站建设饥饿营销的十大案例
  • 怎么查找网站是谁做的微信营销案例
  • 电商seo优化seo企业站收录
  • 北京理想创意艺术设计有限公司重庆seo俱乐部联系方式
  • 手机网站链接微信苏州网站优化公司
  • 总算把网站设计好了今日头条站长平台
  • vs2105制作个人网站百度搜索大全
  • 服务器网站开发怎么在百度上做网站
  • 做不锈钢百度网站哪个比较好百度网站推广怎么收费
  • 郑州做网站远辰制作app软件平台
  • 建设我们的网站天津做网站的网络公司