开发者社区> 问答> 正文

[@talishboy][¥20]程序语言下事件监听底层是如何实现的?

假如让我们使用程序语言(按照顺序执行)实现的话我们可能会
“While(true)
{if(某触发条件成立)
事件触发();

}”。

但如果这样的话想必会大大占用CPU时间,造成浪费。

是有其他什么方式使得事件监听如同皮肤一样,如此本能?

皮肤受到外部刺激就会有感觉,如被针扎会感到痛;但是我们不需要时刻尽力地、主动地、去感受是否有外部的刺激,只要有,这种感觉就自动产生。

还是说其实并不能做到“本能”,只是用了另外一种优化的循环?如果是这样(优化过的),请讲讲这个优化的循环是如何优化或者是如何实现的。

展开
收起
月下丶 2018-12-14 22:07:40 1593 0
1 条回答
写回答
取消 提交回答
  • 孔祥坤 职位:阿里妈妈应用平台技术专家 擅长问题:分布式应用系统架构、Java核心技术以及开源framework等 经历:10年左右Java应用系统研发及架构设计经验,曾主导和参与多个重要广告应用系统的研发设计,目前在阿里妈妈从事广告投放中台的研发工作。

    事件触发机制在操作系统层面是通过中断响应的方式来实现的,不是通过轮询。事件监听机制的实现一般是通过注册回调函数来实现的,也不需要轮询。

    2019-07-17 23:21:38
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JavaScript 语言在引擎级别的执行过程 立即下载
用RxSwift写易维护易读的愉悦代码 立即下载
编程语言如何演化-以JS的private为例 立即下载