Saya sedang mencari pemrograman bersamaan dalam bahasa pemrograman Erlang dan Go. Sesuai temuan saya, mereka masing-masing menggunakan model Aktor dan CSP.
Tetapi saya masih bingung dengan apa perbedaan obyektif antara CSP dan Aktor? Apakah hanya berbeda secara teoretis tetapi konsep yang sama?
programming-languages
concurrency
concepts
go
erlang
nish1013
sumber
sumber
Jawaban:
Dalam praktiknya, ada sedikit perbedaan: keduanya merupakan unit eksekusi yang terpisah yang antarmuka utamanya dengan dunia luar adalah melalui pesan.
Perbedaannya ada pada detail implementasi bahasa. Berikut beberapa detailnya:
receive
mendapatkan semua yang dikirim ke proses dan harus mencocokkan pola (di Go, Anda akan menggunakan aselect
dengan banyak kasus, sehingga kode akan terlihat sangat mirip, hanya dengan saluran yang berbeda).Poin terakhir ini, saya pikir, yang paling penting. Sementara kedua pesan digunakan sebagai utama sarana komunikasi, Erlang membuat jaminan yang lebih kuat tentang bagaimana dan kapan negara bisa berubah.
sumber