Apple hat mit Concurrency ein neues Paradigma in Swift eingeführt. Asynchrone Verarbeitung wird dabei über die for-await-in-Anweisung behandelt.
Bisher hat Swift Asynchronität mit Closures (Block Functions) umgesetzt. Später kam auch das Framework Combine hinzu. Auch dieses Combine-Framework ist im Grunde Apples eigene Umsetzung von Erik Meijers RX.
Das Problem beider bisherigen Ansätze liegt jedoch in den Grenzen von ARC, Swifts GC-ähnlichem Speicherverwaltungsmodell. Wegen der sogenannten Capture List konnten Memory Leaks entstehen, weshalb man Ansätze mit Closures vermeiden wollte. Deshalb hat Apple – ähnlich wie Erik Meijer Reactive entwickelt hat, indem er Sequence und Iterator umgedreht hat – dies nicht umgedreht, sondern mit AsyncSequence (AsynscIterable) und AsyncIterator asynchron gemacht, um das Problem mit Memory Leaks zu lösen und zugleich ein neues asynchrones Paradigma vorzuschlagen.
Noch keine Kommentare.