2014-04-10 2 views
2

내가 아는 것에서부터, 다트는 Akka 배우와 같은 것입니다.Dart Isolate vs Akka

그러나 내가 알 수없는 것은 dart:isolateAkka과 비슷한 용도로 제공되는 경우입니다. 이 둘의 근본적인 차이점이 있습니까?

dart:isolateAkka처럼 배우 모델 프로그래밍을위한 프레임 워크입니까?

dart:isolate은 akka보다 scala 배우와 더 비슷합니다.

답변

2

균주 여러 가지 방법으로 Akka 배우 다릅니다, 즉,

  • 가 분리 된 메모리를 공유하지 않는 단지 유닉스의 프로세스처럼 고립되어 분리가 양산되는 결과로

  • 있습니다 spawn을 사용하면 현재 분리 된 모든 데이터가 중복됩니다.

  • 격리는 수신과 같은 중심적인 방법이 없으므로 더 좋은 방법은 숨겨진 방법이라고 숨겨집니다. 이 방법은 작업을 실행 큐에서 가져 와서 하나씩 실행합니다. 이는 GUI 스레드 작동과 유사합니다. 태스크는 내부에 콜백 메소드로 작성됩니다. 콜백은 다트의 모든 곳에서 사용됩니다.

+0

Akka는 어떻게 메모리를 공유합니까? 이것은 (Akka의) Distinguishing Features가 아닌 것처럼 보입니다 ... 동시성은 메시지 기반이고 비동기식입니다. 일반적으로 변경 가능한 데이터는 공유되지 않으며 ... ' –

+0

"일반적으로"프로그래머가 공유 메모리를 사용하지 말아야한다는 것을 의미하지만 Akka가이를 방지 할 수는 없습니다 - http://doc.akka.io/docs/akka/snapshot/general/ jmm.html –

+1

업데이트 해 주셔서 감사합니다. 이것은 자바의 한계로 보인다. isolates의 경우 이것은 기본적으로 해결되지만 int/double/String/List/Map이나 List 또는 Maps와 같은 기본 유형 만 메시지에 사용할 수 있다는 단점이 있습니다. –

0

설명 http://en.wikipedia.org/wiki/Akka_(toolkit)은 Dart 격리 된 것과 유사합니다.
Akka가 고급 버전 인 것 같습니다. 동일한 호스트 또는 다른 호스트에서 격리와 통신하는 경우에는 아직 투명성이 없습니다.