首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与异步编程相比,并行编程

与异步编程相比,并行编程
EN

Stack Overflow用户
提问于 2011-08-02 18:22:41
回答 1查看 128关注 0票数 0

并行编程和异步编程有什么不同?

我知道异步编程用于在后台线程/工作线程中执行工作,或者等待I/O之类的事情完成。

*并行的任务是否也可以是异步的任务?

*异步中的任务可以并行完成吗?

对我来说有点困惑。

上面有什么例子吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-02 18:32:37

多线程、多进程和异步编程都是并发技术,通过这些技术,您可以在单个程序中同时完成多项工作。如果你只有一个处理器/机器,这些都不是真正的“并行”。它们都只是对一些代码的执行进行流水线处理,这样你就会“感觉”它们都在一起执行。

前两个依赖于CPU切换任务。你只需以某种方式告诉计算机,这些就是你想要完成的事情,然后让它决定如何将时间和其他资源分配给各种任务。我们将在这里掩饰线程和进程之间的区别。

异步编程意味着您的应用程序控制您希望完成的这些任务的切换。一个粗略的例子是当有2个I/O通道需要读/写时。您的应用程序可以将数据发送到1,直到2上有可用的数据。当它发生时,它会从% 2读出数据,然后恢复发送到%1,然后切换到向%2发送数据。其思路是,等到有一些事件需要服务时,再根据可用性和需要在事件之间切换。从某种意义上说,您正在使用这些类型的应用程序手动执行进程调度。一个优点是不存在与多个进程/线程相关的系统开销。许多异步例程都依赖于select系统调用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6910553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档