Alasan Apple membuat Concurrency di Swift (AsyncSequence)
(sobabear.com)Apple memasukkan paradigma baru bernama Concurrency ke dalam Swift. Pemrosesan asinkron ditangani melalui pernyataan for-await-in.
Sebelumnya, Swift menangani pemrosesan asinkron dengan menggunakan Closure (fungsi blok). Lalu kemudian muncul juga framework bernama Combine. Framework Combine ini juga merupakan versi buatan Apple sendiri dari RX milik Erik Meijer.
Namun, masalah dari dua pendekatan di atas adalah keterbatasan ARC, yaitu mekanisme GC di Swift. Karena adanya capture list, bisa terjadi memory leak, sehingga Apple ingin menghindari cara yang menggunakan Closure. Karena itu, seperti Erik Meijer yang membuat Reactive dengan membalik iterable (Sequence) dan Iterator, Apple tidak membaliknya, melainkan membuatnya menjadi asinkron melalui AsyncSequence (AsynscIterable) dan AsyncIteraotr untuk mengatasi masalah memory leak sekaligus menawarkan paradigma asinkron yang baru.
Belum ada komentar.