2 Punkte von stareta1202 2024-02-01 | Noch keine Kommentare. | Auf WhatsApp teilen

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.

Noch keine Kommentare.