HarmonyOSNDK开发时, C++主子线程之间,高频率使用线程安全函数进行通信,是否会造成主线程阻塞而崩溃

HarmonyOSNDK开发时, C++主子线程之间,高频率使用线程安全函数进行通信,是否会造成主线程阻塞而崩溃。

HarmonyOS
2024-09-11 11:29:45
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

线程安全函数没有性能问题,崩溃的话可能是代码设计的问题。主线程中不要有sleep等等这种操作,会引起AppFreeze的,要避免,也不要作一些非常耗时的操作,请参考: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/appfreeze-guidelines-0000001815086702-V5

建议:通过C++的pthread_create创建一个业务线程,业务线程逻辑中,如存在需要返回数据到ArktS层时,通过线程安全函数的napi_call_threadsafe_function调用来触发回调,将数据返回给ArkTS层。也就是说,将耗时操作通过专门的线程来处理,处理完毕后,收集数据,通过线程安全函数返回给ArkTS层。

分享
微博
QQ
微信
回复
2024-09-11 15:25:21
相关问题
C++回调,如何阻塞TS主线程
316浏览 • 1回复 待解决
TaskPool如何跟主线程进行通信
399浏览 • 1回复 待解决
TaskPool子线程主线程如何通信
2193浏览 • 1回复 待解决
怎样判断当前线程是否主线程
345浏览 • 1回复 待解决
如何判断当前线程是否主线程
2242浏览 • 1回复 待解决
如何在进行并发操作保证线程安全
206浏览 • 1回复 待解决
HarmonyOS主线程线程切换问题
390浏览 • 1回复 待解决
如何判断是否主线程
912浏览 • 1回复 待解决
Worker的宿主线程必须是主线程吗?
291浏览 • 1回复 待解决
HarmonyOS线程使用崩溃
307浏览 • 1回复 待解决
基于libuv异步库进行线程通信
1722浏览 • 0回复 待解决
异步是否主线程有影响
376浏览 • 1回复 待解决