Un blocage peut-il toujours se produire dans les langages basés sur les acteurs tels que Scala ou Elixir? Si oui, comment les détecter et les éviter?Interblocages dans les langages de programmation basés sur les acteurs
-1
A
Répondre
1
Scala n'est pas un langage basé sur l'acteur. Akka est juste une bibliothèque (et il est souvent mal utilisé à mon humble avis).
Un interblocage peut se produire car vous pouvez exécuter du code arbitraire à l'intérieur de la méthode receive
. Pour l'empêcher - n'utilisez pas de blocage/synchronisation dans un code d'acteur directement et n'appelez pas les méthodes des objets externes qui utilisent le blocage à l'intérieur.
0
Dans Erlang c'est possible. Vous pouvez avoir deux processus en attente de l'autre pour envoyer un message. En général, ce n'est pas un problème majeur.
mais dans la plupart des cas, vous devrez travailler pour y arriver.