HarmonyOS Native Module 接口的多线程调用问题

按照官方Native C++ Module示例,在cpp/types目录的Index.d.ts文件声明函数,在.cpp源实现函数,对此有两个疑问:

1.import编译好的so,在ts侧中调用add函数时,会进入native侧的实现Add函数中,在native侧的Add函数中通过napi_get_cb_info这个调用可以获取到JS的对象指针,请问,如果在不同线程,不同ts文件中调用add函数时,最终native侧获取到的JS对象指针是否为同一个?即多线程场景下调用模块内函数的表现是怎样的?

2.在官方示例中展示了[Native与ArkTS对象绑定]:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/use-napi-object-wrap-0000001813416132,native项目是纯c实现的,无法切换到c语言,即无法使用C Class,是否有其他方案可以实现 [Native与ArkTS对象绑定] 这样的功能?

HarmonyOS
2024-12-19 15:43:08
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

问题1:首先js的对象是不允许跨线程使用的。如果在同线程,不同ts文件中调用native函数时,每次传入的napi_callback_info都是重新创建出来的,主要还是看js传入的逻辑,如果JS一个变量在两处传,那么是同一个。如果只是值相等,但是是两个变量,两处拿到的napi_callback_info就不同。

问题2:可以使用napi_define_class来建立JS构造函数和成员函数与C方法的关联,不一定需要c++类。此外napi_wrap绑定的是void*,所有数据都支持。

分享
微博
QQ
微信
回复
2024-12-19 19:12:35
相关问题
HarmonyOS关于多线程问题
818浏览 • 1回复 待解决
HarmonyOS 多线程并发相关问题
564浏览 • 1回复 待解决
HarmonyOS 多线程数据互通问题
341浏览 • 2回复 待解决
HarmonyOS 多线程问题
876浏览 • 1回复 待解决
HarmonyOS 多线程安全问题验证
486浏览 • 1回复 待解决
HarmonyOS ArkTS调用Native接口机制咨询
792浏览 • 1回复 待解决
HarmonyOS 关于native线程问题
195浏览 • 1回复 待解决
HarmonyOS 多线程写法限制
445浏览 • 1回复 待解决
HarmonyOS 关于多线程并发使用
433浏览 • 1回复 待解决
HarmonyOS多线程使用?
425浏览 • 0回复 待解决
HarmonyOS 多线程共享数据方法疑惑
475浏览 • 2回复 待解决
ArkTs多线程方案如何保证线程安全
2963浏览 • 2回复 待解决
HarmonyOS 有关多线程资料文档
391浏览 • 1回复 待解决
HarmonyOS是否支持多线程
407浏览 • 0回复 待解决