Ketika kita melihat Model Aktor dan Mengkomunikasikan Proses Berurutan kita melihat bahwa mereka berdua mencoba melakukan konkurensi berdasarkan pesan yang lewat , namun keduanya berbeda .
(Kita melihat implementasi dari Model CSP di go-lang 's goroutines (dan Clojure ini core.async ) dan Model Aktor di Scala Akka toolkit)
Saya mencoba untuk mendapatkan daftar sederhana perbedaan antara Model Aktor dan CSP. Sejauh ini saya punya:
- aktor yang meneruskan pesan tidak sinkron, passing pesan CSP sinkron
- aktor komposer , CSP tidak (harus)
- aktor selalu memiliki non-determinisme yang tidak terikat , CSP mungkin memiliki non-determinisme yang terikat atau tidak terikat
- aktor memiliki topologi variabel sedangkan CSP memiliki topologi tetap
- aktor memiliki prinsip lokalitas , CSP tidak memiliki lokalitas
- aktor dirancang berdasarkan perilaku mereka, CSP tidak harus memilikinya
Apakah ini benar? Apakah ada sesuatu yang saya lewatkan?
Asumsi
- Ketika saya mengatakan 'model aktor' - maksud saya dasar teoretis di balik implementasi dalam kerangka Akka Scala