多线程和异步编程的区别

2023-05-31 0 384

多处置器和触发器程式设计是电脑系统中用作与此同时实现mammalian性和并行处置的三种相同的程式设计本体论。img多处置器是一类程式设计技术,其中数个缓存在一般而言民主化中mammalian运转。每一缓存代表者三个原则上的拒绝执行流,它共享资源完全相同的物理地址,进而容许它们互相通讯和可视化。多处置器能通过与此同时拒绝执行数个各项任务来提升流程的操控性。再者,触发器程式设计是一类只以堵塞形式拒绝执行各项任务的程式设计实例。而不是等候各项任务的顺利完成,流程能继续拒绝执行其它各项任务,与此同时等候触发器各项任务的结论。触发器编程一般来说用作处置可能须要极短时间就可以顺利完成的I/O存取各项任务,比如互联网允诺或磁盘操作方式。多处置器和触发器程式设计间的三个关键性差别是,多处置器牵涉在三个民主化中建立数个缓存,而触发器程式设计牵涉只以堵塞形式拒绝执行各项任务。另三个差别是,多处置器须要隐式地管理工作缓存并行和通讯,而触发器程式设计能采用反弹或允诺(callbacks/promises)等程式设计内部结构来处置触发器操作方式。多处置器和触发器程式设计都能用以与此同时实现电脑系统中的mammalian性和并行处置,但选择采用哪一类依赖于流程和下层硬体和应用软件基础建设的具体内容明确要求。上面是三个怎样在标识符中与此同时实现多处置器和触发器程式设计的实例:多处置器的实例:classProgram{staticvoidMain(string[] args){ Thread countUpThread = new Thread(()=> CountUpTo(10)); Thread countDownThread = new Thread(()=> CountDownFrom(10)); countUpThread.Start(); countDownThread.Start(); countUpThread.Join(); countDownThread.Join();}staticvoidCountUpTo(int number){for (int i =1; i <= number; i++){ Console.WriteLine(i);} }staticvoidCountDownFrom(int number){for (int i = number; i >; i–){ Console.WriteLine(i);} }}在多缓存实例中,他们建立三个缓存mammalian地运转CountUpTo和CountDownFrom形式。Join形式用作在流程优先选择退出以后等候三个缓存顺利完成。触发器程式设计的实例:classProgram{static async Task Main(string[] args){await CountUpToAsync(10);await CountDownFromAsync(10);}static async Task CountUpToAsync(int number){for (int i =1; i <= number; i++){ Console.WriteLine(i); await Task.Delay(1000);// simulate an I/O-bound operation }}static async Task CountDownFromAsync(int number){for (int i = number; i >; i–){ Console.WriteLine(i); await Task.Delay(1000);// simulate an I/O-bound operation }}}在触发器程式设计实例中,他们采用async和awaitURL来触发器拒绝执行CountUpToAsync和CountDownFromAsync形式。Task.Delay形式用作演示一般来说会引致流程阻塞的I/O存取操作方式。Main形式被记号为async以容许采用awaitURL。流程不能堵塞,因此能在等候触发器各项任务顺利完成时继续拒绝执行。

多线程和异步编程的区别

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务