Import Attributes
runtime: 'shared'
通过 Import Attributes 显式声明某些模块可以在主线程和后台线程之间共享。
这仅用于配合 Main Thread Functions 使用。详情请参考 Cross-thread Shared Modules。
import 语句 with 子句中的 runtime 属性指定了所导入模块的运行时行为。当设置为 'shared' 时,该模块会被标记为跨线程共享。
Syntax
Parameters
runtime:'shared'
Examples
Precautions
- 静态分析:此功能依赖编译期静态分析。只有通过
import ... with { runtime: 'shared' }直接导入的标识符才会被识别为 shared。 - 标识符传递:如果一个 shared 的导入函数被赋值给另一个变量,新变量会失去 shared 特性,无法在主线程函数中直接调用(除非再次将其包装为主线程函数)。
- 主线程限制:尽管 shared module 中的代码可以运行在主线程上,但除非显式标记为
'main thread',否则它不会自动获得主线程上下文(例如无法直接使用MainThreadRef)。 - 状态隔离:Shared Module 中的变量和状态在两个线程之间是完全隔离的,各自拥有独立的实例。在一个线程中修改状态不会影响另一个线程。