HarmonyOS 鸿蒙Next 共享对象SharedArrayBuffer能够共享复杂的类实例对象吗

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

HarmonyOS 鸿蒙Next 共享对象SharedArrayBuffer能够共享复杂的类实例对象吗

比如我定义了一个

export class A{ 
public name:string='';
public license:string='';
public Key:string='';
public flag:string='';
constructor(){
...
}

} let model:A=new A(…)

SharedArrayBuffer能共享这种数据吗?因为我主副线程要操作同一份实例 用线程通信的话就很麻烦 还要改构造参数

没玩过共享内存 直接上手的鸿蒙 不太懂


更多关于HarmonyOS 鸿蒙Next 共享对象SharedArrayBuffer能够共享复杂的类实例对象吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

开发者您好,请参考如下链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/serialization-support-types-0000001820879749#section1685532415513,多线程实例还不支持,要到下个版本。

更多关于HarmonyOS 鸿蒙Next 共享对象SharedArrayBuffer能够共享复杂的类实例对象吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


如果把实例用let str:string=JSON.stringify(model)然后去转成字节这样行得通吗?

HarmonyOS 鸿蒙Next 中的 SharedArrayBuffer 主要用于在多个线程之间共享二进制数据,而不是直接共享复杂的类实例对象。SharedArrayBuffer 提供了一种机制,允许不同线程访问同一块内存区域,但它本身并不支持直接共享复杂的对象实例。

如果你需要在多个线程之间共享复杂的类实例对象,可以考虑使用其他机制,如序列化和反序列化,或者使用 WorkerMessagePort 进行对象传递。鸿蒙系统提供了 MessageSequenceParcel 等工具,可以帮助你在不同线程之间传递复杂对象。

总之,SharedArrayBuffer 本身并不支持直接共享复杂的类实例对象,但可以通过其他方式实现类似的功能。

HarmonyOS鸿蒙Next中的SharedArrayBuffer主要用于在多个线程间共享二进制数据,而不是直接共享复杂的类实例对象。它提供了一种机制来共享内存区域,但不支持直接共享对象的引用或状态。如果需要共享复杂对象,通常需要将对象序列化为二进制数据,然后通过SharedArrayBuffer进行共享,并在接收端反序列化还原对象。这种方式增加了额外的开销,但可以实现复杂对象的跨线程共享。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!