Vì sao Apple đưa Concurrency vào Swift (AsyncSequence)
(sobabear.com)Apple đã đưa một mô hình mới gọi là Concurrency vào Swift. Việc xử lý bất đồng bộ được thực hiện thông qua câu lệnh for-await-in.
Trước đây, Swift xử lý bất đồng bộ bằng Closure (Block function). Sau đó, một framework tên là Combine cũng ra đời. Framework Combine này cũng là phiên bản Apple tự xây dựng từ RX của Erik Meijer.
Tuy nhiên, vấn đề của cả hai cách trên là giới hạn của ARC, cơ chế quản lý bộ nhớ của Swift. Vì thứ gọi là capture list, có thể xảy ra rò rỉ bộ nhớ, tức là họ muốn tránh cách dùng Closure. Vì vậy, giống như Erik Meijer đã tạo ra Reactive bằng cách đảo ngược iterable (Sequence) và Iterator, Apple thay vì đảo ngược nó thì làm cho nó trở nên bất đồng bộ bằng cách tạo ra AsyncSequence (AsynscIterable) và AsyncIteraotr, nhằm giải quyết vấn đề rò rỉ bộ nhớ đồng thời đưa ra một mô hình bất đồng bộ mới.
Chưa có bình luận nào.