DART隔离和线程(Java,C#)之间的区别 [英] Difference between DART Isolate and Thread (Java,C#)

查看:205
本文介绍了DART隔离和线程(Java,C#)之间的区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对我来说,DART隔离看上去像是具有不同术语的线程(Java / C#)。

For me The DART Isolate looks like a Thread (Java/C#) with a different terminology. In which aspect Isolate differs from a Thread?

推荐答案

线程使用共享内存,而隔离对象则没有。

Threads use shared memory, isolates don't.

例如,以下伪代码(在Java / C#中)

For example, the following pseudocode in Java/C#

class MyClass {
  static int count = 0;
}

// Thread 1: 
MyClass.count++;
print(MyClass.count); // 1;

// Thread 2:
MyClass.count++;
print(MyClass.count); // 2;

这也存在两个线程同时修改共享内存的风险。

This also runs the risk of the shared memory being modified simultaneously by both threads.

在Dart中,

class MyClass {
  static int count = 0;
}

// Isolate 1: 
MyClass.count++;
print(MyClass.count); // 1;

// Isolate 2:
MyClass.count++;
print(MyClass.count); // 1;

隔离是彼此隔离的。它们之间进行通信的唯一方法是传递消息。一个隔离器可以侦听来自另一个隔离器的回调。

Isolates are isolated from each other. The only way to communicate between them is to pass messages. One isolate can listen for callbacks from the other.

查看此处的文档,包括隔离概念部分。

Check out the docs here including the "isolate concepts" section.

这篇关于DART隔离和线程(Java,C#)之间的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆