Native适配开发--典型开发场景概述

        在Native侧C/C++开发场景中,对于计算简单、应用侧主线程需要实时等待结果的情况下,开发者往往会采用常见的同步方式开发业务逻辑。然而,在计算密集型场景中,对于需要执行耗时操作的逻辑,为了避免阻塞应用侧主线程,确保应用程序的性能和响应效率,开发者需要将该部分业务逻辑设计在Native侧进行异步执行。在异步开发中,开发者需要将C/C++子线程异步处理的结果反馈到ArkTS主线程,用以应用侧UI界面刷新。

一、使用Node-API进行同步任务开发

        在同步任务开发中,ArkTS应用侧主线程将阻塞等待Native侧计算结果,Native侧计算结果通过方舟引擎反馈给ArkTS应用侧。此过程中,Native接口代码与ArkTS应用侧均运行在ArkTS主线程上。

        比如,应用侧需要读取文件,同步模式下,应用侧程序将会一直等待Native侧文件读取完成,然后再继续运行。

        

二、使用Node-API进行异步任务开发

        在异步任务开发中,应用侧在调用Native接口后,将会收到临时结果,并继续执行UI操作。Native侧将异步执行业务逻辑,不阻塞应用侧。

        比如,应用侧需要读取文件,异步模式下,应用侧程序将不会等待Native侧文件读取完成,并继续运行。

        

 三、使用Node-API进行线程安全开发

        由于ArkTS天然线程安全,而Native侧代码需要开发者自行保障线程安全。Native侧C++子线程不可跨线程直接访问ArkTS对象。为此,Node-API提供了可保障线程异步执行与通信安全的机制 —— 线程安全函数。

        比如,应用侧需要读取文件,使用线程安全进行实现时,应用侧程序将不会等待Native侧文件读取完成,并继续运行。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值