代码中做阻塞式的耗时操作,会影响其它任务的执行吗

如果在这段代码中做阻塞式的耗时操作,会影响其它任务的执行吗?

static void ExecuteCB(napi_env env, void *data) 
{ 
  CallbackData *callbackData = reinterpret_cast<CallbackData *>(data); 
  callbackData->result = callbackData->args; 
}
HarmonyOS
2024-05-11 14:36:29
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
chenyi1976

ExecuteCB的执行完毕后,才会执行CompleteCB的回调处理,所以在ExecuteCB中增加耗时操作,会影响回调中CompleteCB的执行,比如,sleep操作。CompleteCB在主线程执行,ExecuteCB在工作线程中执行。

只有在AsyncWork函数执行时,将CPU执行释放(如在AsyncWork函数的napi_queue_async_work语句后增加sleep)后,会执行ExecuteCB回调,但是,只有AsyncWork函数执行完毕后,才会执行CompleteCB函数。

分享
微博
QQ
微信
回复
2024-05-12 20:58:04
相关问题
openharmony napi 异步耗时阻塞jsui刷新
3968浏览 • 1回复 已解决
延迟任务什么时候执行
517浏览 • 1回复 待解决
鸿蒙js开发影响其性能吗?
11387浏览 • 3回复 待解决
如何在ArkTS代码执行HTML内JS函数
804浏览 • 1回复 待解决
ws库发送过快是否阻塞接收
491浏览 • 1回复 待解决
如何利用taskpool执行任务
617浏览 • 1回复 待解决
ArkTS在代码执行效率是如何提升
626浏览 • 1回复 待解决
HarmonyOS线程池周期执行任务
311浏览 • 1回复 待解决