对我来说,DART Isolate 看起来像一个具有不同术语的线程 (Java/C#)。Isolate 与 Thread 在哪个方面不同?
问问题
807 次
1 回答
7
线程使用共享内存,隔离不使用。
例如,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;
隔离物彼此隔离。它们之间通信的唯一方法是传递消息。一个隔离器可以侦听另一个隔离器的回调。
在此处查看文档,包括“隔离概念”部分。
于 2013-02-19T12:22:36.223 回答