HarmonyOS 鸿蒙Next:Worker线程哪些情况下会崩掉或死亡

发布于 1周前 作者 caililin 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:Worker线程哪些情况下会崩掉或死亡 我用Woker线程处理大量socket连接的数据,

前几次发workerInstance.postMessage,worker线程还可以收到,有些socket断开的操作之后,后面有些postMessage就收不到了,onerror里也收不到信息。

也没有调用过worker的terminate。

7 回复

我也遇到类似的情况,不确定是不是worker挂了,我在worker里面的逻辑都捕获了异常😂

更多关于HarmonyOS 鸿蒙Next:Worker线程哪些情况下会崩掉或死亡的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


1、线程数超过8

2、调用native方法没做线程管理,导致多线程崩溃

3、native那边的线程需要手动释放

  1. 3都不是,线程管理是指的什么。

目前知道一种情况,worker线程如果有未捕捉的异常,会导致后续发送无法接收到。

回复的消息是否可以通过emitter做呢?
现在是worker关闭后就收不到消息了,

主要是在workport端收不到worker被关闭的消息,消息只在主线程才能收到。

在HarmonyOS鸿蒙系统中,Worker线程可能会崩掉或死亡的情况主要包括以下几种:

  1. 资源耗尽:当Worker线程在执行过程中消耗了大量系统资源(如内存、文件句柄等),且这些资源没有得到及时释放或系统资源本身有限时,线程可能会因为资源耗尽而崩溃。

  2. 未处理的异常:如果Worker线程中抛出了未捕获的异常,且异常处理机制未能有效处理,线程可能会因此终止。

  3. 系统错误:某些系统级别的错误,如操作系统层面的资源分配失败、设备故障等,也可能导致Worker线程崩溃。

  4. 死锁与活锁:线程间如果存在复杂的同步关系,可能会导致死锁(两个或多个线程相互等待对方释放资源)或活锁(线程间不断尝试获取资源但始终无法成功),进而造成线程无法正常执行而“死亡”。

  5. 外部干扰:外部因素如用户强制终止进程、系统重启等也会导致Worker线程异常终止。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部