Ansicht umschalten
Avatar von llogiq
  • llogiq

241 Beiträge seit 13.12.2000

Konzept der nebenläufigen Programmierung

Damit reiht sich Rust neben Sprachen wie C#, Python, Dart, Kotlin oder JavaScript ein, die das Konzept der nebenläufigen Programmierung bereits umgesetzt haben

Das ist meines Erachtens nach etwas unglücklich formuliert – Rust hat schon seit 1.0.0 Threads, mit rayon gibt es schon seit Längerem Task-basierte Nebenläufigkeit. Was hier eingebaut wurde, ist eine elegante Syntax um Futures quasi als Generatoren implementieren zu können – im Prinzip state machines, die man mehrfach aufrufen kann. Die Besonderheit hierbei ist, dass diese Abstraktion die asynchrone Programmierung inkl. asynchronem IO erlaubt, ohne auf callbacks zugreifen zu müssen.

Wer Rust ein wenig kennt, kann sich vorstellen, wie viel Aufwand getrieben werden musste, bis die ganze Maschinerie zum Umwandeln der async fns in state machines eingebaut war. Das ist schon allein wegen der Borrowing/Ownership- und Lifetime-Regeln von Rust wesentlich komplexer als bei Sprachen wie C# oder Python. Aber der Aufwand hat sich gelohnt! Die async fns lassen sich sogar in

no_std

code verwenden, und im Embedded-Bereich gibt es viele Anwendungsfälle für state machines.

Bewerten
- +
Ansicht umschalten