![[Tìm hiểu qua hình ảnh] Hiểu biết trực quan nhất về các khái niệm đồng bộ (sync) và không đồng bộ (async)Hình thu nhỏ khóa học](https://cdn.inflearn.com/public/courses/324755/course_cover/ac23c8f7-6fc7-457f-874b-e2bff8ec0d50/infinf.png?w=420)
[Tìm hiểu qua hình ảnh] Hiểu biết trực quan nhất về các khái niệm đồng bộ (sync) và không đồng bộ (async)
allen
Đây là bài giảng dài 19 phút sẽ giúp bạn hiểu các khái niệm về đồng bộ và không đồng bộ một cách rất dễ dàng.
Cơ bản
sync, async
Tìm hiểu về Swift Concurrency từ A đến Z. (Phần 2)
268 học viên
Độ khó Trung cấp trở lên
Thời gian 24 tháng


Đánh giá từ những học viên đầu tiên
5.0
giop15
Bạn giải thích từng chi tiết một rất cụ thể nên mình rất dễ hiểu!
5.0
sujinnaljin
Đúng như mong đợi, bài giảng của anh Allen luôn rất đáng tin cậy. Không chỉ bài giảng hay mà lúc nào anh cũng đưa ra những câu trả lời chất lượng cho các câu hỏi. Tôi rất thích vì mình có thể nhận lại được nhiều hơn thế khi tự học và đặt câu hỏi~!
5.0
갱모
Khóa học muốn giới thiệu cho những ai muốn học Swift Concurrency nhưng thấy xem WWDC quá khó khăn
Hiểu về Swift Concurrency qua lăng kính Khoa học máy tính (CS)
Khái niệm về luồng thực thi (thread pool) truyền thống, luồng thực thi cộng tác (cooperative thread pool) và cấu trúc bộ nhớ
Cô lập tác vụ / Sendable
Khái niệm cơ bản về Actor - Cách ly / Không cách ly
Sử dụng Actor - Tính nguyên tử/Tính tái nhập/Hopping/Tối ưu hóa
Actor - Quy tắc về Hàm khởi tạo/Hàm hủy/Protocol/Kế thừa/Mở rộng
Actor toàn cục / MainActor
AsyncSequence / AsyncStream
Triển khai Trình thực thi (Executor) tùy chỉnh và khái niệm về mức độ ưu tiên
Vấn đề về việc truyền các kiểu Non-Sendable và cô lập hàm
(Để biên soạn tài liệu cho bài giảng này, chúng tôi đã mất hơn một năm. Vì nội dung bài học được tối ưu hóa/tốt nhất và chi tiết hơn bất kỳ nội dung nào liên quan đến Swift Concurrency trên thế giới, mong các bạn thông cảm rằng chúng tôi bán tài liệu riêng để duy trì chất lượng bài giảng. Việc mua tài liệu là tùy chọn. Bạn hoàn toàn có thể chỉ mua khóa học.)
Swift Concurrency cho Swift 6 bởi Allen (Giáo trình tích hợp Phần -1 / Phần -2)
Link nơi bán: https://smartstore.naver.com/allenschool/products/11528874881
(30.000 won)
Ngay cả khi bạn không trực tiếp tham gia khóa học này, bạn vẫn có thể mua riêng giáo trình. (Tuy nhiên, vì đây là tài liệu được tối ưu hóa cho mục đích giảng dạy, nên có thể có những nội dung khó hiểu nếu chỉ mua giáo trình. Nếu bạn đồng ý với điều này, bạn có thể chỉ mua giáo trình mà không cần mua khóa học.)
Phụ đề: Học lập trình Swift Concurrency đúng cách để tiến tới Swift 6
Nền tảng cơ bản vững chắc dựa trên CS và
sự khác biệt nhỏ trong chi tiết
sẽ tạo nên sự khác biệt về thực lực.
Kể từ khi Swift Concurrency mới được giới thiệu trong phiên bản 5.5, Swift đã trải qua các giai đoạn chuẩn bị và cuối cùng đã cập nhật lên phiên bản 6. Và một trong những mục tiêu cốt lõi của phiên bản Swift 6 chính là đảm bảo tính an toàn bằng cách loại bỏ khả năng xảy ra tranh chấp dữ liệu tiềm ẩn (Race Condition/Data-Races) và cho phép triển khai mã nguồn Thread-Safe (an toàn luồng) ngay từ giai đoạn biên dịch.
(Chúng ta đang đứng trước bước ngoặt cho việc áp dụng dần dần Swift 6.)
Vì vậy, bài giảng này được thiết kế với mục tiêu giúp bạn học tất cả các nội dung liên quan đến Swift Concurrency, tức là từ A đến Z, để có thể từng bước tiến tới Swift 6. Vui lòng tham khảo nội dung chính của khóa học bên dưới, và tôi cũng có giải thích chi tiết về khóa học trong video giới thiệu bài giảng đầu tiên, nên mong bạn cũng hãy tham khảo thêm.
(Nếu bạn hoàn thành việc học toàn bộ nội dung của Phần 1 và 2, tôi tin rằng nền tảng lý thuyết cho việc áp dụng Swift 6 sẽ được hoàn thiện.)
Luôn là mục tiêu cá nhân trong các bài giảng của tôi, khóa học này khai thác nội dung chi tiết và sâu sắc hơn bất kỳ bài giảng nào về Swift Concurrency trên thế giới này. (Vì tôi tin rằng sự khác biệt nhỏ nhưng đầy tỉ mỉ như một sự ám ảnh sẽ tạo nên sự khác biệt về trình độ, nên tôi luôn cố gắng cung cấp các ví dụ mã nguồn đa dạng và tài liệu được sắp xếp gọn gàng cho các bạn.)
Hiểu về lập trình đồng thời dưới góc độ Khoa học máy tính (Hiểu về cấu trúc Thread/Bộ nhớ)
Data Isolation / Task Isolation / Actor Isolation (Hiểu về khái niệm cô lập)
Task Isolation và Shared Mutable State (Dữ liệu chia sẻ có thể thay đổi)
Kiểu Sendable (Kiểu dữ liệu an toàn để chia sẻ giữa các luồng)
Chinh phục hoàn toàn Actor (1) Cách ly/Không cách ly (2) Tính nguyên tử (3) Tính tái nhập (4) Actor Hopping
(5) Chặn MainActor (6) Giải quyết tranh chấp Actor
Global Actor và MainActor
Ví dụ dự án triển khai bộ nhớ đệm (cache) bằng Actor
AsyncSequence (Dãy tuần tự bất đồng bộ) và AsyncStream (Luồng bất đồng bộ)
Ví dụ dự án áp dụng AsyncStream vào WebSocket
Truyền (sending) các kiểu dữ liệu Non-Sendable
Vấn đề liên quan đến sự cô lập của hàm (closure) - isolated (Actor)? = #isolation / @isolated(any)
Thực thi Trình thực thi (Executor) tùy chỉnh / Ưu tiên Trình thực thi (Executor) của Task
(Tham khảo) từ khóa consume / consuming
Quy tắc cú pháp chuyên sâu của Actor - Hàm khởi tạo / Hàm hủy / Protocol / Kế thừa / Extension
Chuyển đổi từ Swift 5 sang Swift 6
Phân tích dự án bằng cách sử dụng Instruments
Thấu hiểu đúng về Task / async / await
Cách thức hoạt động của hàm bất đồng bộ (async)
Giới thiệu API bất đồng bộ mới liên quan đến URLSession
Sử dụng Continuation (1) Chuyển đổi hàm callback / (2) Chuyển đổi phương thức delegate sang phương thức bất đồng bộ
Ví dụ dự án chuyển đổi phương thức Delegate của ứng dụng vị trí (CoreLocation) sang async/await
Nội dung lý thuyết về tính đồng thời có cấu trúc (Structured Concurrency)
Xử lý song song - (1) async let (2) TaskGroup
Hiểu về cách thức hoạt động của việc hủy bỏ tác vụ (Ví dụ dự án liên quan đến hủy bỏ tác vụ)
Tìm hiểu về mô hình hủy bỏ mang tính hợp tác
Ứng dụng của tính đồng thời có cấu trúc và hủy bỏ tác vụ
Ứng dụng của TaskGroup (Chỉ định số lượng luồng đồng thời - Thiết lập tùy chỉnh)
Ứng dụng của biến Task-Local
Link bài giảng Part-1: https://inf.run/jXpfH
📌 Chúng tôi có mục tiêu bao quát lập trình Swift Concurrency từ A đến Z.
📌 Đây là nền tảng để viết mã an toàn giữa nhiều luồng ngay từ thời điểm biên dịch (mục tiêu của Swift 6).
📌 Khóa học được tạo ra sau khi phân tích hoàn hảo tất cả các video liên quan đến WWDC - Swift Concurrency hiện có.
📌 Đây là bài giảng được tạo ra bằng cách tham khảo tất cả các tài liệu Swift Evolution (github) hiện có.
📌 Phân tích vô số sách và bài giảng nước ngoài liên quan đến Concurrency để bao quát tối đa mọi nội dung không sót một chi tiết nào.
📌 Các dự án ví dụ đa dạng
📌 Vì vậy, nó chi tiết hơn bất kỳ bài giảng Swift Concurrency nào trên Trái đất !!!!
📌 (Như các bài giảng của tôi vẫn luôn như vậy) Tôi cung cấp các tài liệu học tập riêng biệt để giúp bạn hiểu và hệ thống hóa kiến thức một cách trực quan nhất có thể.
Có thể mua giáo trình riêng (Sách điện tử PDF)
Để giúp bạn hiểu một cách trực quan nhất, tôi sẽ giải thích bằng một bộ giáo trình riêng dày 300 trang.
(Giáo trình phải được mua riêng.)
Cung cấp đa dạng tài liệu dịch thuật như bản dịch tài liệu chính thức
Chúng tôi cung cấp bản dịch của tài liệu chính thức Swift 6 (Concurrency), tài liệu chính thức API Collection, v.v. để giúp bạn tận dụng tối đa thời gian học tập một cách hiệu quả nhất.
Cung cấp tài liệu mã nguồn ví dụ cho nhiều dự án khác nhau
Không chỉ dừng lại ở nội dung lý thuyết, bạn sẽ được học chuyên sâu thông qua việc trực tiếp áp dụng những gì đã học vào dự án.
Cung cấp tài liệu mã nguồn học lý thuyết
Cung cấp tài liệu mã nguồn playground với nhiều ví dụ đa dạng để hỗ trợ việc học lý thuyết một cách tốt nhất.
Dành cho bài giảng - Bán riêng sách điện tử PDF (Giáo trình) (Giáo trình tích hợp Part-1 / Part-2)
Link: https://smartstore.naver.com/allenschool/products/11528874881
(Các tài liệu mã nguồn ngoài giáo trình được cung cấp miễn phí.)
Cung cấp tài liệu mã nguồn /
Cung cấp ví dụ dự án
Cung cấp nhiều bản dịch (Swift 6 - Concurrency / API Collection / Migrating to Swift 6)
Kiến thức cơ bản về cú pháp Swift - mức độ có thể sử dụng thành thạo các hàm (function), closure, v.v.
Kiến thức cơ bản về cách xử lý các hàm callback bất đồng bộ truyền thống, DispatchQueue, v.v.
Kinh nghiệm xử lý API gọi mạng (URLSession, v.v.) bằng Swift
Kiến thức UIKit, SwiftUI ở mức độ cơ bản
macOS Sequoia / Xcode 16.2 trở lên
Nội dung của bài giảng này, trong trường hợp tôi có tham khảo hình ảnh hoặc các tài liệu khác, trong tệp PDF đều có để lại địa chỉ URL liên quan. Ngoại trừ những trường hợp đó, tất cả các tài liệu còn lại đều do tôi tự soạn thảo, vì vậy việc đưa nội dung bài giảng này lên blog cũng như chia sẻ tệp PDF giáo trình điện tử dùng làm tài liệu giảng dạy đều bị nghiêm cấm trong mọi trường hợp.
(Nếu vi phạm các nội dung liên quan đến bản quyền này, bạn có thể phải chịu trách nhiệm pháp lý, vì vậy xin vui lòng lưu ý.)
Q. Khóa học có được học trọn đời không?
A. Đây không phải là khóa học trọn đời. Khóa học này có thời hạn giới hạn việc học là 24 tháng (2 năm). Xin vui lòng lưu ý. (Vì tôi đã nhiều lần gặp phải trường hợp chia sẻ khóa học của mình.. và so với thời gian và công sức tôi bỏ ra thì nó cũng không kiếm được số tiền lớn.. nên đây chỉ là biện pháp tốt nhất mà tôi có thể làm để ngăn chặn việc chia sẻ khóa học, mong các bạn rộng lòng thông cảm 🙏🏻)
Khóa học này dành cho ai?
Những ai muốn học chuyên sâu về Swift Concurrency
Dành cho những ai muốn học kỹ cả nội dung CS (Khoa học máy tính)
Dành cho những ai muốn "nghiền ngẫm" kỹ hơn cả những video WWDC!!!!!!
Cần biết trước khi bắt đầu?
Những kiến thức cơ bản của ngôn ngữ Swift
Mức độ kiến thức cơ bản về lập trình đồng thời
Xác minh Inflearn
7,669
Học viên
773
Đánh giá
314
Trả lời
5.0
Xếp hạng
7
Các khóa học
Tôi là Allen, nhà phát triển iOS.
https://www.youtube.com/@allen_ios
"Kiến thức thực sự hiểu rõ là phải có thể giải thích một cách dễ dàng bằng ngôn ngữ của chính mình." là phương châm của tôi.
Vì vậy, tôi muốn trở thành một nhà phát triển có thể chia sẻ kiến thức bằng ngôn ngữ mà bất kỳ ai cũng có thể hiểu được, thông qua việc giải thích một cách dễ hiểu những sai lầm mà tôi đã trải qua trong quá trình học tập.
Tôi không quan tâm đến việc tạo ra những bài giảng chỉ dạy hời hợt những chủ đề dễ dàng trong thời gian ngắn.
Những bài giảng như vậy có thể được tạo ra nhanh chóng như sản xuất hàng loạt, nhưng tôi tin rằng để cuối cùng "trưởng thành thành một nhà phát triển giỏi", thì nền tảng lý thuyết phải thực sự vững chắc.
Thay vì những bài giảng dễ dãi, mục tiêu bài giảng của tôi là truyền đạt những nội dung khó mà bạn
bắt buộc phải biết để trở thành một nhà phát triển giỏi (người có thể không ngừng phát triển) một cách dễ hiểu và trực quan nhất có thể.
Từ đó, tạo ra nền tảng để chính các bạn, chứ không phải tôi, có thể tự mình trăn trở và suy nghĩ về lý do TẠI SAO (WHY).
Cũng giống như việc bản thân tôi luôn nỗ lực để ngày mai trở thành một nhà phát triển tốt hơn,
tôi muốn truyền đạt một cách sâu sắc những nội dung mà mình đã từng trăn trở.
Tôi nghĩ rằng việc liên tục thất bại trong các buổi phỏng vấn, hoặc không thể diễn đạt những nội dung dễ dàng bằng ngôn ngữ của chính mình, đồng nghĩa với việc bạn chưa thực sự hiểu rõ chúng. Ngược lại, tôi tin rằng chỉ khi có "nền tảng cơ bản vững chắc" về những nội dung cơ bản và CS, bạn mới có thể phát triển nhanh chóng.
👇🏻Mọi thắc mắc vui lòng gửi về email bên dưới.
we.love.code.allen@gmail.com
Ngôn ngữ: Swift, Python, Java, C#
Tất cả
72 bài giảng ∙ (16giờ 2phút)
Tài liệu khóa học:
Tất cả
29 đánh giá
5.0
29 đánh giá
Đánh giá 4
∙
Đánh giá trung bình 5.0
Đánh giá 3
∙
Đánh giá trung bình 5.0
Đánh giá 3
∙
Đánh giá trung bình 5.0
Đánh giá 3
∙
Đánh giá trung bình 5.0
Đánh giá 2
∙
Đánh giá trung bình 5.0
Hãy khám phá các khóa học khác của giảng viên!
Khám phá các khóa học khác trong cùng lĩnh vực!
Ưu đãi có thời hạn, kết thúc sau 3 ngày ngày
131 ₫
30%
5.063.235 ₫