1、前 言
本篇文章是基于鸿蒙多线程开发——线程间数据通信对象03(sendable)的接续讨论。
2、共享模块
共享模块是进程内只会加载一次的模块,使用"use shared"这一指令来标记一个模块是否为共享模块。
非共享模块在同一线程内只加载一次,在不同线程间会加载多次,在不同的线程内都会产生新的模块对象。因此可以使用共享模块来实现进程单例。
🔐 约束限制
-
"use shared"需要与"use strict"一样写在ArkTS文件顶层,写在import语句之后其他语句之前。
共享属性不存在传递性,即非共享模块A不会引入了共享模块B而使A变成共享。
-
共享模块只支持ets文件。
-
共享模块内不允许使用side-effects-import。
共享模块可在线程间共享,共享后函数对依赖的非共享模块会在获取模块化变量值的时候懒加载,这种类型的import不涉及导出变量,所以不会被加载。
// 不允许使用side-effects-importimport "./sharedModule"
-
共享模块导出的变量必须都是可共享对象。
鸿蒙多线程开发之共享模块解析

最低0.47元/天 解锁文章
1912

被折叠的 条评论
为什么被折叠?



