对我来说,DART Isolate 看起来像一个具有不同术语的线程 (Java/C#)。 Isolate 与 Thread 在哪些方面不同?
线程使用共享内存,而隔离则不使用。
例如,以下伪代码在 Java/C# 中
class MyClass {
static int count = 0;
}
// Thread 1:
MyClass.count++;
print(MyClass.count); // 1;
// Thread 2:
MyClass.count++;
print(MyClass.count); // 2;
这还存在共享内存被两个线程同时修改的风险。
而在 Dart 中,
class MyClass {
static int count = 0;
}
// Isolate 1:
MyClass.count++;
print(MyClass.count); // 1;
// Isolate 2:
MyClass.count++;
print(MyClass.count); // 1;
隔离物彼此隔离。他们之间沟通的唯一方式是传递消息。一个隔离可以侦听来自另一隔离的回调。
查看文档在这里 http://www.dartlang.org/docs/dart-up-and-running/contents/ch03.html#ch03-dartisolate---concurrency-with-isolates包括“隔离概念”部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)