scala - Scaling에서 액터 모델의 대안 인 CSP(Sequicating Processs) 통신이 있습니까?



core.async actor-model (1)

이 문서를 참조해야하지만 일반적으로 다음과 같은 몇 가지 차이점이 있습니다.

  • 배우가 신원을 가지고있는 동안 채널은 익명입니다.
  • CSP에서는 채널을 사용하여 메시지를 전송하지만 액터는 서로 직접 연결할 수 있습니다.
  • CSP 통신은 랑데부 형태로 이루어집니다 (즉, 동기식). 액터는 비동기 메시지 전달을 지원합니다.

그리고 네,이 차이가 당신의 입장에서 받아 들일 수 있다면 액터 모델 대신 CSP를 사용할 수도 있습니다. JCSP에 대한 경험이 없지만 특정 라이브러리를 사용하는 것을 권장하지 않습니다. 이유는 2011 년부터 프로젝트에 아무런 활동도 없었기 때문입니다.

1978 년 Hoare의 Paper에는 Sequicating Processs라는 개념이 있습니다. 이것은 Go , Occam 및 Clojure에서 core.async 에서 사용 core.async .

스칼라에서 액터 모델 대신 CSP를 사용할 수 있습니까? (나는 JCSP 보고있다. 그러나 만약 이것이 성숙하고 누군가가 그것을 사용한다면 이것이 유일한 선택인지 궁금하다.)

편집 - 또한 스칼라 에서 JCSP에 대한 대안으로 스칼라 개체 통신 을보고 있습니다. 그러나 이것들은 실제 스레드에 묶여있는 것처럼 보입니다. CSP의 이점 중 하나를 놓치고 많은 스레드를 항상 활성 상태로 유지하는 메모리 자원 비용을 없애는 것 같습니다.





actor-model