Khi chúng ta nhìn vào Mô hình diễn viên và Giao tiếp các quy trình tuần tự, chúng ta thấy rằng cả hai đều cố gắng thực hiện đồng thời dựa trên việc truyền thông điệp , nhưng chúng khác biệt .
(Chúng tôi thấy việc triển khai Mô hình CSP trong các goroutines của go-lang (và Clojure's core.async ) và Mô hình diễn viên trong bộ công cụ Akka của Scala )
Tôi đang cố gắng để có được một danh sách đơn giản về sự khác biệt giữa Mô hình diễn viên và CSP. Cho đến nay tôi có:
- truyền tin nhắn diễn viên không đồng bộ, truyền tin nhắn CSP là đồng bộ
- các tác nhân có thể ghép lại được , CSP không (nhất thiết)
- các tác nhân luôn có chủ nghĩa không xác định không giới hạn , CSP có thể có giới hạn không xác định hoặc không giới hạn
- các tác nhân có cấu trúc liên kết thay đổi trong khi CSP có cấu trúc liên kết cố định
- diễn viên có nguyên tắc địa phương , CSP không có địa phương
- các tác nhân được thiết kế xung quanh hành vi của họ, CSP không nhất thiết phải có điều này
Điều này có đúng không? Có thiếu điều gì không?
Giả định
- Khi tôi nói 'mô hình diễn viên' - ý tôi là cơ sở lý thuyết đằng sau việc thực hiện trong khuôn khổ Akka của Scala