Dart Isolate进一步理解

发布时间 2023-10-13 11:23:49作者: Silentdoer

var resFuture = Isolate.run(callbackFun);  // 在FfiData的test方法里创建出isolate1

这个isolate1虽然和主的Isolate不共用堆内存(至少在isolate1结束前是这样),但是isolate1在创建时是能捕获在主Isolate里初始化的final字段的,

因此两个isolate共存期间,虽然他们的堆内存互相隔离,但是GC层面,是要求isolate1结束了,才能将主Isolate里创建的FfiData对象给GC掉,

哪怕是在主Isolate里该FfiData对象已经明面上没有变量引用它了;

这个听起来有点像结构化并发的概念,要求子的结束了,才能清理父的(但是还需要确认是否只针对FfiData类,如果这个isolate1不是在FfiData里创建的会怎么样?);