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

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

static void ExecuteCB(napi_env env, void *data) 
{ 
  CallbackData *callbackData = reinterpret_cast<CallbackData *>(data); 
  callbackData->result = callbackData->args; 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
HarmonyOS
2024-05-11 14:36:29
971浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
人提唱盘

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
相关问题
在arkts如何执行耗时任务
324浏览 • 1回复 待解决
openharmony napi 异步耗时阻塞jsui刷新
6421浏览 • 1回复 已解决
延迟任务什么时候执行
2657浏览 • 1回复 待解决
在ArkTS如何处理耗时操作
1327浏览 • 1回复 待解决
HarmonyOS try catch是异步执行吗?
723浏览 • 1回复 待解决