首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自同步通信的异步通信

来自同步通信的异步通信
EN

Software Engineering用户
提问于 2018-02-18 15:11:01
回答 1查看 758关注 0票数 0

研究操作系统中的进程间通信,我发现异步通信可以建立在同步通信的基础上。但是,我不清楚该怎么做。你能向我解释一下吗?

EN

回答 1

Software Engineering用户

发布于 2018-02-18 16:10:23

首先,我认为我们需要很好地理解同步和异步这两个术语。

这些术语不是指进程之间通信的消息,而是指发送或接收此类消息的模型,该模型与进程中正在进行的计算有关。因此,相同的通信--相同的消息--可能是一个进程异步的,另一个进程是同步的。

同步I/O也称为阻塞I/O;异步I/O是非阻塞I/O。这些术语再次强调发送/接收相对于发送或接收进程的内部计算(而不是描述通信本身)的发送/接收方法。

如果您使用同步I/O发送或接收消息,则该进程将被阻塞,直到消息被完全发送或接收为止。因此,似乎很难将其转换为异步方法。

但是,您可以创建一个新线程,只用于执行I/O操作,而现有的主线程继续执行(S)。这样做提供了一个牺牲线程,它将阻塞同步I/O请求,而其他线程可以继续运行。因此,尽管在新线程中使用了阻塞I/O,但主/其他线程的I/O操作似乎是异步的。

(在没有线程的情况下,您可以对多个进程执行类似的操作。)

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

https://softwareengineering.stackexchange.com/questions/366158

复制
相关文章

相似问题

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