HarmonyOS鸿蒙Next企业面试题 多线程实现方式TaskPoll和Worker的区别?

HarmonyOS鸿蒙Next中多线程实现方式TaskPoll和Worker的区别如下:

用法的区别:

1、Worker需要新建一个文件作为子线程,还需要配置build-profile.json5 实现主线程和子线程通信

2、TaskPool 使用@Concurrent装饰器定义一个方法,然后通过 new taskPool.Task()就可以创建一个子线程了

 taskpool.execute(printArgs, 100).then((value: Object) => { // 100: test number
      console.info("taskpool result: " + value);
    });

处理任务的区别:

TaskPool:处理密集型计算,避免阻塞主线程。 (大多数场景推荐使用TaskPool由于TaskPool的工作线程会绑定系统的调度优先级,并且支持负载均衡

Worker:独立线程,适合长期运行任务 (3分钟以上的任务 长任务使用Worker

总结:运行时间超过3分钟的用Worker,其他时候使用TaskPool,例如后台进行1小时的预测算法训练等CPU密集型任务,需要使用Worker


更多关于HarmonyOS鸿蒙Next企业面试题 多线程实现方式TaskPoll和Worker的区别?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

回到顶部