API中的阻塞与非阻塞、同步与异步
1个回答
展开全部
在谈论一个API的行为时,经常会用到下面两组修饰词:
大多数情况下,阻塞意味着同步,非阻塞意味着异步。既然含义相同,为什么使用两组词汇来描述呢?答案是 角度不同 。
API用户关心的是 从API请求发出到执行完成,自己的线程是否被阻塞 。而API实现者在接收到请求后,需要作出决策:1. 在当前线程 立即 执行,造成阻塞;2. 记录请求,另起线程 稍后 执行。 立即 被称为 同步 , 稍后 被称为 异步 。同步、异步指实现方式,阻塞、非阻塞指API的语义形式。实现者往往同时提供两种API语义,底层复用一种实现方式。
API语义之所以出现从阻塞到非阻塞的演进,最主要的原因是I/O(磁盘I/O、网络I/O)速度与CPU速度之间的差距越来越大,引入非阻塞API既可以减少浪费在空等上的CPU时间,提高CPU利用率,又有利于增大I/O并发度,提高I/O设备的利用率。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
要从电脑的一个串行口接收数据并将其从另一个串行口发送出去,你可以使用以下步骤:1. 确定你要使用的两个串行口。在大多数计算机上,串行口通常被称为COM1、COM2等。确保你了解每个串行口的名称或编号。2. 编写一个程序来读取来自一个串行口的...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询