Das Lesen über Parallelität in Erlang erinnert mich an das Akka-Toolkit für Parallelität . Beide bieten Ihnen Werkzeuge, um Rennbedingungen zu verhindern oder zu begrenzen . Mit dem immer noch unsicheren Akka-Toolkit können Sie jedoch Links zu veränderlichen Daten an andere Prozesse senden. Ich sehe Akka als nützliches Werkzeug, aber es bietet keinen Schutz vor unzulässigem Zugriff auf Objekte und Daten, was zu Rennbedingungen, Deadlock und / oder Hunger führt. Es hindert Sie nicht daran, unsicheren Code so zu schreiben, wie Java oder C # Sie davor schützt, die meisten Arten von Speicherlecks zu schreiben, die Sie in C ++ schreiben können (Sie können in Java immer noch Speicherlecks erstellen, indem Sie den Garbage Collector austricksen, aber es ist weniger ein Problem, als daran denken zu müssen, jedes von Ihnen zugewiesene Byte freizugeben).
Garantiert Erlang ein gewisses Maß an Korrektheit, Leistung und Robustheit bei der gleichzeitigen Programmierung? Ich denke, Betriebssysteme bieten Schutz beim Zugriff auf Systemressourcen (vorausgesetzt, die Treiberschreiber haben ihre Arbeit gut gemacht). ACID-Datenbanken bieten Schutz für Lesevorgänge und Aktualisierungen. Es scheint also, dass dies ein lösbares Problem ist. Oder würde eine generische sichere Lösung die durch die Parallelität erzielten Leistungssteigerungen auslöschen? Bieten andere Sprachen oder Toolkits die Art von gleichzeitiger Sicherheit, die Erlang bietet (oder nicht)?
Dies ist eine Folgefrage zu @ Malfists Kommentar zu @ user1249s Antwort auf Welche Programmiersprache erzeugt die wenigsten schwer zu findenden Fehler? .
quelle