gpt4 book ai didi

multithreading - 并发、并行和异步方法有什么区别?

转载 作者:行者123 更新时间:2023-12-03 04:22:53 27 4
gpt4 key购买 nike

并发是指两个任务在不同的线程上并行运行。但是,异步方法并行运行,但在同一个线程上。这是如何实现的?另外,并行性怎么样?

这三个概念有什么区别?

最佳答案

并发和并行实际上与您正确推测的原理相同,两者都与同时执行的任务有关,尽管我想说并行任务应该是真正的多任务处理,“同时”执行,而并发可能意味着任务共享执行线程,同时看起来仍然是并行执行。

异步方法与前两个概念没有直接关系,异步用于呈现并发或并行任务的印象,但实际上,异步方法调用通常用于需要远离当前应用程序执行工作的进程我们不想等待并阻止我们的应用程序等待响应。

例如,从数据库获取数据可能需要一些时间,但我们不想阻止我们的 UI 等待数据。异步调用采用回调引用,并在向远程系统发出请求后立即将执行返回到您的代码。当远程系统执行所需的任何处理时,您的 UI 可以继续响应用户,一旦它将数据返回到您的回调方法,那么该方法就可以根据需要更新 UI(或移交更新)。

从用户的角度来看,它看起来像是多任务处理,但事实可能并非如此。

<小时/>

编辑

可能值得补充的是,在许多实现中,异步方法调用将导致线程启动,但这不是必需的,它实际上取决于正在执行的操作以及如何将响应通知回系统。

关于multithreading - 并发、并行和异步方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4844637/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com