首页 文章

与Async编程相比,并行编程

提问于
浏览
0

并行编程与异步编程有何不同?

我知道异步编程用于在后台线程/工作程序中工作或等待像I / O那样完成某些事情 .

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

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

有点让我感到困惑 .

以上是什么例子?

1 回答

  • 2

    多线程,多进程和异步编程都是并发技术,您可以在一个程序中一次完成多个操作 . 如果你只有一个处理器/机器,那么这些都不是真正的“并行” . 他们都只是管道执行一些代码,以便你“感觉”他们都在一起执行 .

    前两个依赖于CPU切换任务 . 您只需告诉计算机这些是您想要完成的事情,然后让它决定如何为各种任务分配时间和其他资源 . 我们将在这里掩盖线程和进程之间的差异 .

    异步编程意味着您的应用程序控制您要完成的这些任务的切换 . 一个粗略的例子是当你想要读/写2个I / O通道时 . 您的应用程序可以将数据发送到1到2,其中有数据可用 . 如果是这样,它将从2读出数据然后继续发送到1,然后切换到发送数据到2.想法是你等到有一些事件需要服务,然后根据事件切换可用性和需求 . 从某种意义上说,您可以使用这些类型的应用手动执行流程安排 . 一个优点是与多个进程/线程相关联的系统开销不存在 . 许多异步例程依赖于select系统调用 .

相关问题