Allen iOS Concurrency (Đồng thời) - Hiểu về Dispatch Queue và Operation Queue
Lập trình đồng thời (Concurrency) - Nội dung bao gồm tất cả các khái niệm về đồng bộ (Sync), bất đồng bộ (Async) cần thiết trong lập trình iOS, cũng như mở rộng sang GCD và Operation.
830 học viên
Độ khó Cơ bản
Thời gian Không giới hạn

Tin tức
5 bài viết
Chúng tôi đã phát hành khóa học Swift Concurrency (Phần 2).
Xin chào! Đây là Alan.
Chúng tôi đã phát hành Phần 2 của bài giảng Swift Concurrency được mong đợi từ lâu.Liên kết bài giảng: https://inf.run/rFuFe
Đối với những ai muốn tìm hiểu sâu hơn về Swift Concurrency, tôi nghĩ bài giảng này sẽ rất hữu ích. (Toàn bộ khóa học vẫn chưa hoàn thành, nhưng 70% nội dung bài giảng đã được tải lên và 30% nội dung còn lại dự kiến sẽ được tải lên vào cuối tháng 3.)
100 người đầu tiên sẽ được giảm giá 50% cho khóa học và 200 người tiếp theo sẽ được giảm giá 45% , vì vậy nếu bạn quan tâm đến việc mua khóa học, hãy nhanh chóng đăng ký để tận dụng cơ hội này.
(Nếu bạn vào trang bài giảng, có một liên kết riêng dành cho những người đến trước được hưởng ưu đãi giảm giá ở đầu trang. Vui lòng kiểm tra và nhấp vào liên kết để mua để nhận được ưu đãi giảm giá.🙏🏻)Xin chào! Đây là Alan. :)
Lâu lắm rồi tôi mới đăng tin mới.
Đã lâu rồi tôi mới mang đến cho các bạn một tin tức mới để giới thiệu với các bạn blog của "sujinnaljin", người đã lắng nghe các bài giảng của tôi và diễn giải lại cẩn thận nội dung bài giảng của tôi theo phong cách riêng của mình. :)
Bạn viết nó rất hay và vui nhộn... Tôi cũng rất thích đọc hết nội dung. Haha.
Chúng tôi sẽ cung cấp cho bạn mục lục và đường link bên dưới! Trong khi đó, bạn đã đặt ra rất nhiều câu hỏi, ngoài ra bạn còn tự mình nghiên cứu nhiều nội dung khác nhau... và tóm tắt nhiều nội dung khác nhau! Tôi nghĩ sẽ là một ý tưởng hay nếu bạn vào và xem qua nội dung GCD!
(Và có nhiều nội dung khác liên quan đến iOS ngoài GCD thực sự dễ viết và thú vị, vì vậy sẽ rất tốt nếu bạn tham khảo chúng.)
[Blog của "sujinnaljin" - Mục lục và liên kết liên quan đến GCD][iOS] Bắt đầu GCD từng bước — 1: Lần này, tôi muốn bạn hiểu GCD..🥂
[iOS] Bắt đầu với GCD từng bước — 2: Cùng tìm hiểu về GCD và các thao tác
[iOS] Hãy bắt đầu GCD từng bước một — 3: đồng bộ hóa (đồng bộ) và không đồng bộ (không đồng bộ)
[iOS] Bắt đầu với GCD từng bước — 4: Cùng tìm hiểu về Serial và Concurrent
[iOS] Bắt đầu với GCD từng bước — 5: Cùng tìm hiểu về các loại và đặc điểm của GCD Dispatch Queue
[iOS] Cách hoạt động khi QoS của DispatchQueue và task khác nhau: GCD bắt đầu từng bước — Phần 5
[iOS] Làm quen với GCD từng bước — 6: Cùng tìm hiểu những lưu ý khi sử dụng GCD
[iOS] Bắt đầu với GCD từng bước — 7: Cùng tìm hiểu về khái niệm Dispatch Group
[iOS] Bắt đầu với GCD từng bước — 9: Cùng tìm hiểu về DispatchWorkItem
[iOS] Bắt đầu với GCD từng bước — 10: Cùng tìm hiểu về DispatchSemaphore
[iOS] Bắt đầu với GCD từng bước — 14: Cùng tìm hiểu về bế tắc và giải pháp
[iOS] Bắt đầu với GCD từng bước — 15: Cùng tìm hiểu về đảo ngược mức độ ưu tiên và cách giải quyết nó
Ngoài ra, một số cập nhật về nội dung khóa học được lên kế hoạch vào khoảng tháng 7. :)
Về nội dung của vòng lặp chạy / Chủ đề vật lý (song song) so với phần mềm Chủ đề (đồng thời) / Khối - NonBlock / async, chờ đợi, v.v. Tôi đã sắp xếp tài liệu nhưng hiện tại tôi đang quay một bài giảng về ngữ pháp Swift để phát hành . Đang có một bài giảng... Sau khi hoàn tất quay phim và tải lên bài giảng đó, bài giảng này cũng sẽ được cập nhật!
Sau đó, tôi hứa sẽ đền đáp lại bạn bằng nội dung bài giảng hay... Hẹn gặp lại bạn sớm :)
- Giấc Mơ Alan -Xin chào. Đã lâu rồi tôi mới chào đón bạn với tin tức mới.
Nó không khác gì,
Tại sao phải cập nhật giao diện người dùng trên luồng chính? Có một bài viết hay về câu hỏi này nên tôi đã đưa ra cách giải thích và muốn chia sẻ với bạn.
Tôi hy vọng đây có thể là một tài liệu tham khảo tốt.
(Nguồn gốc của bài viết)
https://medium.com/@duwei199714/ios-why-the-ui-need-to-be-updated-on-main-thread-fd0fef070e7f
(Tài liệu PDF được dịch)
https://drive.google.com/file/d/1dFw6sJsxV-huK3BoHXgDq-7rXy9yBq9l/view?usp=sharing
Tóm lại một cách ngắn gọn,
1) Nếu tất cả các thuộc tính của UIKit được thiết kế ở chế độ An toàn cho luồng, thì sự suy giảm hiệu suất như chậm lại có thể xảy ra, do đó nó không thể được thiết kế theo cách đó. (Ý định của Apple là thiết kế nó không an toàn cho luồng.)
2) Nó hoạt động thông qua một thiết kế trong đó runloop chính cập nhật chế độ xem đồng thời thông qua Chu trình xem bản vẽ , quản lý việc cập nhật chế độ xem, nhưng luồng nền (không phải luồng chính) thực hiện các thao tác đó với runloop của chính nó. được thực hiện, chế độ xem có thể hoạt động tùy ý. (Ví dụ Ví dụ: khi xoay thiết bị, bố cục chế độ xem có thể không được sắp xếp lại cùng lúc.)
3) iOS có quy trình kết xuất để vẽ ảnh (Hoạt hình lõi -> Máy chủ kết xuất -> GPU -> Hiển thị) , nhưng khi nhiều luồng gửi các thay đổi đối với chế độ xem tương ứng của chúng tới GPU, GPU phải diễn giải tất cả thông tin, điều này làm chậm quá trình, có thể trở nên kém hiệu quả.
4) Mặc dù có một khung giao diện người dùng không đồng bộ do Facebook phát triển có tên là Kết cấu hoặc Thành phần, nhưng Chu trình vẽ chế độ xem sử dụng một phương pháp tương tự để cập nhật đồng thời luồng chính vào thời điểm thích hợp .
Như thế này Đây là nội dung. Trên thực tế, đó là một bài viết khiến tôi phải suy nghĩ lại về việc liệu các bản cập nhật giao diện người dùng chỉ được phép có cấu trúc trên luồng chính hay không vì nhiều lý do tương tự như trên, không chỉ trong iOS mà còn trong Windows và các hệ điều hành khác.
Đây chỉ là một chủ đề mà bạn có thể nghĩ đến ít nhất một lần... Tôi hy vọng nó sẽ giúp ích được một chút ^^
Cảm ơn .
Xin chào. Đây là Alan.
Trước hết, cảm ơn bạn đã tham gia khóa học Lập trình đồng thời iOS. :)
Gần đây có 2 người đăng câu hỏi hay ở mục câu hỏi.
Tôi đã trả lời... Có một số sai sót trong nhận xét... Và để giải thích rõ ràng hơn một chút,
Quay lại và chỉnh sửa video phần liên quan (thay thế file video hiện có)
Tôi đã tải nó lên và sửa đổi mã và tệp PDF một chút để bạn có thể tải lại mã hoặc tệp PDF.
Tôi nghĩ nó sẽ tốt nên tôi đăng một số tin tức mới.
(Nếu bạn xem câu hỏi của họ và câu trả lời của tôi để tham khảo, nó có thể hữu ích cho việc học của bạn. ^^)
Phần đó
Trong GCD 3. Những lưu ý khi sử dụng hàng đợi gửi đi (GCD)
2) Lưu ý về phương pháp đồng bộ hóa . Nói cách khác, lý do tại sao nó không được gửi từ hàng đợi hiện tại (async) sang hàng đợi hiện tại (sync)
Điều này được trình bày rõ ràng hơn một chút.
(Dưới đây là hình ảnh chụp trang tôi đã thêm vào bản PDF hướng dẫn bài giảng.)

Nội dung trên đã được thêm vào file PDF nên các bạn có thể sử dụng để tham khảo.
Có.. Nếu thiếu lời giải thích bổ sung hoặc điều gì đó bạn không hiểu, vui lòng gửi câu hỏi và chúng tôi sẽ cố gắng hết sức để trả lời.
Cảm ơn bạn luôn. :)
Xin vui lòng đặt câu hỏi bất cứ lúc nào và chúng tôi sẽ cố gắng hết sức để trả lời chúng.
Cảm ơn. ^^

