Chủ Nhật, 20 tháng 12, 2015

IOS - Giới thiệu về lập trình Concurrency

Lập trình Concurrency được hiểu là lập trình đa tác vụ được thực thi cùng lúc. Với các thế hệ CPU mới đa nhân như hiện nay thì lập trình Concurrency đang được tận dụng để làm tăng hiệu quả của chương trình. Trong các HĐH như OS X hay IOS, hầu hết các chương trình được chạy ngầm định và các tác vụ của chúng được thực thi không đòi hỏi sự liên tục. Nếu trong một ứng dụng chỉ cần 1 tác vụ chạy thường trú và chỉ chiếm giữ 1 phần nhỏ trong các core của CPU, thì các tài nguyên còn lại sẽ bị lãng phí vô ích.

Trước đây, khi giới thiệu Concurrency là nghĩ ngay đến tạo một hay nhiều Thread. Nhưng Thread chỉ là một công cụ xử lý tác vụ thủ công cấp thấp. Do vậy, lập trình trực tiếp trên Thread đôi khi đầy rủi ro, khó khăn thậm chí là bất khả thi.

Các HĐH OS X hay IOS đã tích hợp các cách tiếp cận bất đồng bộ để xử lý các task đồng thời. Thay vì cách xử lý truyền thống trực tiếp trên Thread, các ứng dụng chỉ cần khai báo các task cụ thể cần được xử lý và đề hệ thống tự xử lý lấy. Nhờ vậy nâng cao khả năng phát triển mở rộng của ứng dụng, giảm độ phức tạp trong xử lý code cho lập trình viên và cải thiện sự hiệu quả của các mô hình lập trình.

Trong lập trình Concurrency, cơ bản có 3 cơ chế xử lý task bất đồng bộ:

- Dispatch Queues
- Operations Queues
- Dispatch Sources 

Không có nhận xét nào :

Đăng nhận xét