关于鸿蒙napi的异步机制的疑问,执行逻辑是跑在js线程上吗?
各位大佬,
据我理解,js作为一个单线程的语言,高耗时的操作一般都是要异步执行的。鸿蒙的js接口大部分也都是异步的,会带上一个callback的参数。
那么对于callback这种异步模式,底层C++会创建一个aysync work 然后将执行逻辑(耗时部分)和函数执行完成后的逻辑全部都封装进去。然后丢到uv_loop中。
最终调用引擎的loop接口,执行这个work。
我的问题就是,最终执行逻辑是跑在JS runtime线程上吗?如果是,那么假设这部分执行逻辑很复杂,很耗时,不会阻塞JS的runtime吗?
按我理解不是应该仅仅将callback的逻辑封装成async的work推到loop中,而执行逻辑交给底层新创建的线程不是更好吗?
(以上问题是我在audio_standard中render的write接口的时候的疑问。)
NAPI,异步机制
赞
收藏 2
回答 1
待解决
相关问题
鸿蒙NAPI机制具体的执行过程,如何实现js和c++通信的
3493浏览 • 1回复 待解决
js 怎么开启异步线程?
1344浏览 • 1回复 待解决
关于鸿蒙应用开发的疑问?
1711浏览 • 1回复 待解决
类似CallStateObserver中的回调,是在app主线程,还新的线程中?
1328浏览 • 1回复 待解决
关于Wearable开发的几个疑问
3775浏览 • 2回复 待解决
关于DependentLayout布局的一点疑问
1340浏览 • 1回复 待解决
使用JS开发只能做到页面使用JS处理,业务逻辑必须要Java处理是吗?
1588浏览 • 1回复 待解决
关于智能穿戴应用开发的几个疑问?
5503浏览 • 2回复 待解决
模拟器上是不显示device模块的吗?
1613浏览 • 1回复 待解决
物联网的层次结构从逻辑上可分为哪几层?
199浏览 • 1回复 待解决
主线程怎么才能判断子线程是否已经执行结束了
1985浏览 • 1回复 待解决
并行执行算子的问题有懂的吗?
176浏览 • 1回复 待解决
鸿蒙是基于Android的吗?
5140浏览 • 2回复 已解决
关于 JS UI 开发的应用的问题?
1579浏览 • 1回复 待解决
轻量级智能穿戴设备支持跑TS的项目吗?
278浏览 • 1回复 待解决
关于鸿蒙分布式数据库key疑问
2237浏览 • 1回复 待解决
在DevEco Studio里面可以同时跑2个本地模拟器吗
1108浏览 • 1回复 待解决
webrtc能在鸿蒙系统的华为智慧屏上适配吗?
3668浏览 • 2回复 待解决
关于JS http请求参数的传递问题
2005浏览 • 1回复 待解决
在鸿蒙系统上开发应用或研发可以用Python语言吗
1347浏览 • 1回复 待解决
js Fa如何实现线程间通信?
1645浏览 • 1回复 待解决
请问js2java-codegen这个工具,java中的异步方法结果怎么回传?
1231浏览 • 1回复 待解决
UI线程处理 安卓中的runOnuiThread 有代替方法吗
3845浏览 • 1回复 待解决
js 开发中 自定义组件在使用if属性时遇到的问题,有懂的吗?
327浏览 • 1回复 待解决
自制移动组件逻辑(求封装好的方法)?
1048浏览 • 1回复 待解决
async 的实现逻辑是js的语言规范规定的,
关于多线程,可以启动多个JS线程或者采用worker的机制。
楼主可以参考:https://www.ecma-international.org/ecma-262/6.0/index.html