강의

멘토링

커뮤니티

BEST
Programming

/

Mobile Application Development

Alan iOS Concurrency - Tìm hiểu hàng đợi công văn và hàng đợi hoạt động

Lập trình đồng thời - Bao gồm tất cả các khái niệm về đồng bộ hóa và không đồng bộ cần thiết trong lập trình iOS, cũng như GCD và Hoạt động, mở rộng chúng.

(5.0) 63 đánh giá

828 học viên

  • allen
iOS
Swift
concurrent

Đánh giá từ những học viên đầu tiên

Bạn sẽ nhận được điều này sau khi học.

  • Lập trình đồng thời iOS

  • Hiểu tối ưu hóa trong iOS (hiệu suất/khả năng phản hồi)

  • Hiểu các khái niệm cơ bản về xử lý không đồng bộ/đồng bộ hóa

  • Hiểu hàng đợi công văn của iOS (GCD)

  • Hiểu nhóm công văn/nhóm công văn không đồng bộ

  • Tìm hiểu về OperationQueue của iOS

  • Ví dụ về một dự án thực tế áp dụng GCD/Operation

  • A đến Z về GCD/Vận hành

  • Hiểu về an toàn luồng

  • Hiểu thiết kế đối tượng an toàn theo luồng

  • Dễ dàng hiểu tất cả những điều này một cách trực quan (có hình ảnh)

🙋🏻‍♂️ Biểu đồ tự chẩn đoán

Sau lớp học, bạn sẽ hiểu rõ các khái niệm dưới đây.

  • Tôi hiểu rõ khái niệm về hàng đợi phân phối . (Có/Không)
  • Tôi hiểu các loại hàng đợi điều phối và chất lượng dịch vụ (QoS). (Có/Không)
  • Trong hầu hết các trường hợp, tôi biết lý do tại sao tôi không nên sử dụng phương pháp Đồng bộ hóa và tôi hiểu sự khác biệt giữa thời điểm tôi hoàn toàn phải sử dụng phương pháp Đồng bộ hóa . (Có/Không)
  • Tôi biết về khái niệm nhóm điều phối . (Có/Không)
  • Tôi biết những điều cần lưu ý khi xử lý các hàm không đồng bộ trong nhóm điều phối . (Có/Không)
  • Tôi hiểu khái niệm về các hạng mục công việc được phân công và lý do tại sao chúng được sử dụng. ( Có/Không)
  • Tôi biết khái niệm về tín hiệu điều phối và cách sử dụng chúng. (Có/Không)
  • Khi thiết kế các đối tượng, bạn phải hiểu rõ những cân nhắc về khả năng nhiều luồng truy cập chúng và thiết kế các đối tượng phù hợp . (Có/Không)
  • Khi tạo một dự án thuộc loại chế độ xem bảng/chế độ xem bộ sưu tập tải xuống hình ảnh, tôi hiểu rõ những điểm cần lưu ý khi xử lý khái niệm bất đồng bộ . (Có/Không)
  • Tôi hiểu rõ các vấn đề tiềm ẩn có thể phát sinh khi sử dụng hàng đợi phân phối (khi nhiều luồng truy cập dữ liệu), đặc biệt là tình trạng chạy đua và tôi biết cách sử dụng TSan (Công cụ khử trùng luồng) . (Có/Không)
  • Tôi hiểu rõ cách viết mã an toàn cho luồng . (Có/Không)
  • Tôi biết khái niệm về các hoạt động mở rộng trong hàng đợi phân phối và sự khác biệt giữa chúng. (Có/Không)
  • Bạn có thể sử dụng nó để phân biệt khi nào nên sử dụng hàng đợi thao tác thay vì hàng đợi phân phối. (Có/Không)
  • Tôi hiểu mã cho các hoạt động không đồng bộ (AsyncOperation) , có thể xử lý các hàm không đồng bộ. (Có/Không)
  • Bạn có thể thoải mái sử dụng các chức năng chính của thao tác (đặt thứ tự các tác vụ, hủy chúng) . (Có/Không)

📝 Mục lục bài giảng

(Phần lớn được chia thành phần GCD và phần Phép toán . Ngay cả khi bạn hiểu rõ về GCD, bạn vẫn có thể không quen với Phép toán (lớp nhiệm vụ) , một khái niệm được phát triển từ GCD. Bài giảng được cấu trúc sao cho bạn có thể hiểu mọi thứ trong một bài giảng, rõ ràng và dễ hiểu hơn bất kỳ blog hay bài giảng nào.)

🖼️ Ví dụ về kiểu chú thích ảnh

(Ví dụ về nhiều phương pháp giải thích bằng hình ảnh và sơ đồ được sử dụng trong lớp học.)

🌈 Tài liệu được cung cấp trong bài giảng 

Dưới đây cung cấp nhiều tài liệu khác nhau.

  1. Tóm tắt liên quan đến GCD PDF - Chương 287
  2. Tóm tắt liên quan đến hoạt động PDF - Chương 89
  3. Mã giải thích liên quan đến GCD (tệp sân chơi) - 19 trang (không bao gồm tệp nguồn)
  4. Mã cho các giải thích liên quan đến Hoạt động (tệp sân chơi) - 8 trang (không bao gồm tệp nguồn)
  5. Tệp dự án iOS - 8
  6. Giải thích các bài viết tham khảo (2)

(Tất cả tài liệu trong thư mục trên đều được cung cấp.)

🙌 Tài liệu tham khảo được sử dụng trong quá trình biên soạn bài giảng

Mặc dù tôi đã tham khảo các tài liệu bên dưới, nhưng tôi đã tự mình thiết kế tất cả các mô tả minh họa.

  1. Bài giảng video ( iOS Concurrency với GCD và Operations ) - Raywenderlich https://www.raywenderlich.com/3648-ios-concurrency-with-gcd-and-operations
  2. Sách ( Concurrency by Tutorials ) - Raywenderlich https://store.raywenderlich.com/products/concurrency-by-tutorials
  3. Bài viết ( Hướng dẫn về Operation và OperationQueue trong Swift ) - Raywenderlich https://www.raywenderlich.com/5293-operation-and-operationqueue-tutorial-in-swift
  4. Bài viết ( An toàn luồng của biến lười trong Swift ) https://medium.com/what-i-talk-about-when-i-talk-about-ios-developmen/the-thread-safety-of-lazy-variables-in-swift-b20184ef5a38

🙋🏻‍♂️ Nội dung bài giảng có khác nhiều so với <Tài liệu tham khảo sản xuất bài giảng> không?

Thực sự có rất nhiều sự khác biệt.

Nếu tôi chỉ cố gắng tạo ra một bài giảng ở mức độ dịch thuật dựa hoàn toàn vào các tài liệu tham khảo ở trên, tôi đã không lên kế hoạch cho bài giảng này. Tôi đã chọn phương pháp giải thích tốt nhất có thể, tự mình tạo ra các bài thuyết trình PPT với những lời giải thích hiệu quả, minh họa trực quan và sơ đồ về các chủ đề này để giúp bạn hiểu trực quan cách thức hoạt động thực sự của các luồng . Như đã đề cập ở trên , tôi đã xem lại các tài liệu tham khảo hơn mười lần, và mặc dù bao quát toàn bộ nội dung, bài giảng này nhằm mục đích giúp việc giải thích dễ dàng hơn nhiều và các hình ảnh minh họa đa dạng giúp bạn dễ hiểu hơn.

Và vì nội dung của những hình ảnh này là do cá nhân tôi tự sắp xếp trong hơn hai tháng làm việc toàn thời gian, tôi không nghĩ bạn sẽ tìm thấy một lời giải thích nào như thế này hoặc chi tiết như thế này ở bất kỳ nơi nào khác (kể cả tài liệu nước ngoài). Ví dụ, nếu có một dòng duy nhất trong tài liệu tham khảo (bài giảng video của raywenderlich) nói rằng, "Vấn đề này cũng có thể xảy ra với lazy var", tôi đã có thể tự mình xác định tất cả các vấn đề liên quan đến lazy var, sắp xếp chúng và đưa ra giải pháp đồng thời giúp hiểu trực quan hơn về các hình ảnh.

Việc hiểu được bức tranh tổng thể giúp việc viết code dễ dàng hơn rất nhiều. Tôi đã cố gắng duy trì sự cân bằng giữa việc hiểu thông qua hình ảnh và việc áp dụng code càng nhiều càng tốt, điều này làm cho cuốn sách này nổi bật so với các tài liệu tham khảo khác. So với các tài liệu tham khảo khác, cuốn sách này cung cấp nhiều chi tiết hơn, trực quan hơn và nội dung phong phú hơn, cùng với những giải thích nhất quán và dễ hiểu.

🐠 Về mã được cung cấp

Để giúp bạn hiểu rõ hơn về chủ đề này, các tệp mã được cung cấpcũng được đề cập trong lớp học . Phần lớn mã được cung cấp được lấy từ các bài giảng video GCD của raywenderlich trong phạm vi được giấy phép cho phép ( các phần được áp dụng đã được chỉ định ). Đối với các phần mà giấy phép không cho phép (mã được cung cấp trong sách raywenderlich), tôi đã tự viết mã và trong khuôn khổ chính , tôi đã cố gắng đảm bảo độ tin cậy của mã được cung cấp bằng cách viết tương tự.

Ngoài ra, để giúp bạn hiểu mã chúng tôi cung cấp, chúng tôi đã sắp xếp lại thứ tự mã và thêm mã để giải thích chi tiết hơn, cung cấp nhiều ví dụ để giúp bạn hiểu nội dung của khóa học này.

🤔 Về giá lớp học

Bạn có thể ngạc nhiên vì mức giá cao cho một chủ đề duy nhất, nhưng tôi đảm bảo với bạn rằng nội dung phong phú này hoàn toàn xứng đáng . Để giải thích nội dung này, tôi đã tự tay tạo một tài liệu PDF, bao gồm 287 trang liên quan đến GCD89 trang liên quan đến Toán tử, tổng cộng là 376 trang . (Tài liệu thực tế tôi sử dụng trong các bài giảng video của mình bao gồm khoảng 830 trang PPT, chưa kể mã.)

Khóa học này bao gồm hầu như mọi thứ bạn có thể tìm thấy trong các nguồn tài liệu quốc tế liên quan đến GCD/Operations , và hầu hết các hình ảnh và sơ đồ trong khóa học này là của riêng tôi . Tôi đã dành rất nhiều thời gian và công sức cho khóa học này, và tôi tin rằng đây là một chủ đề quan trọng cho sự phát triển của các nhà phát triển trong tương lai. Do đó, theo quan điểm cá nhân, tôi đã lên kế hoạch và tạo ra khóa học này dựa trên nguyên tắc "Ước gì có nhiều tài liệu và bài giảng như thế này hơn ".

Cá nhân tôi tin rằng việc trả tiền cho một khóa học là một sự đánh đổi giữa thời gian và tiền bạc . Tôi tin rằng nó sẽ xứng đáng với số tiền bỏ ra, giúp bạn tiết kiệm thời gian học tập . Tôi hy vọng bạn sẽ tiết kiệm được thời gian và có được sự hài lòng hơn. Tôi sẽ cố gắng cung cấp cho bạn nội dung chất lượng vượt xa mức giá bạn bỏ ra, và tôi chân thành mong bạn hãy ghi nhớ điều này. ^^

💌 Giấy phép nội dung bài giảng liên quan

Trong trường hợp tôi có tham khảo hình ảnh hoặc tài liệu khác trong bài giảng này, địa chỉ URL liên quan sẽ được cung cấp trong tệp PDF . Ngoại trừ những trường hợp đó, tất cả tài liệu đều là của tôi. Do đó, nếu bạn đang sắp xếp phần giải thích bài giảng trên blog hoặc trang web khác, tôi đề nghị bạn vui lòng đính kèm liên kết đến bài giảng này .

Tuy nhiên, việc đăng toàn bộ nội dung bài giảng này lên blog hoặc chia sẻ các tệp PDF được sử dụng làm tài liệu bài giảng đều bị nghiêm cấm trong mọi trường hợp .

👀 Xem trước nội dung bài giảng được cung cấp

Trước khi bạn quyết định tham gia một lớp học, chúng tôi đã tạo điều kiện cho bạn kiểm tra trước phong cách bài giảng.

  • ( Bản xem trước khoảng một giờ liên quan đến Mục 0.1.GCD/Hoạt động)
  • ( Bản xem trước 5 phút liên quan đến Mục 10. 1. Hoạt động)

Bạn có thể xem trước các bài giảng được cung cấp và quyết định có nên tham gia hay không :)

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Bất cứ ai đã học một chút ngôn ngữ Swift

  • Bất kỳ ai muốn tìm hiểu các khái niệm cơ bản về xử lý không đồng bộ đồng bộ trong iOS

  • Bất cứ ai muốn biết về khái niệm hàng đợi công văn GCD (Grand Central Dispatch)

  • Bất cứ ai muốn biết về Dispatch Group

  • Bất cứ ai muốn biết về Operation/OperationQueue

  • Bất cứ ai muốn biết về khái niệm An toàn luồng

  • Nhà phát triển iOS từ sơ cấp đến trung cấp

Cần biết trước khi bắt đầu?

  • Hiểu ngôn ngữ Swift

  • Tìm hiểu lập trình iOS

Xin chào
Đây là

7,503

Học viên

736

Đánh giá

303

Trả lời

5.0

Xếp hạng

7

Các khóa học

iOS개발자 앨런입니다.
https://www.youtube.com/@allen_ios

"정확하게 아는 지식은, 쉽게 자신의 말로 설명할 수 있어야 한다."가 제 모토입니다.

그렇기에 제가 공부하면서 겪었던 시행착오를 쉽게 풀어내어
누구든 이해할 수 있는 언어로 지식을 공유할 수있는 개발자가 되고싶습니다.

저는 쉬운 주제로 빠른 시간 안에 겉핥기 식으로 쉽게만 가르치는 강의를 만드는 것에는 관심이 없습니다.
그런 강의는 얼마든지 빠르게 찍어내듯 만들 수 있겠지만, 결국 "좋은 개발자로 성장"하는 것은 그만큼 이론적인 기반의 밑거름이 탄탄해야 한다고 믿고 있기 때문입니다.

쉬운 강의보다는, 좋은 개발자(끊임없이 성장할 수 있는 개발자)가 되기 위해
반드시 알아야 하는 어려운 내용까지를 최대한 쉽게, 그리고 직관적으로 알려드리는 것.
그래서 제가 아닌 여러분 스스로 WHY(왜)를 고민/생각할 수 있는 밑거름을 만들어 드리는 것을 저의 강의 목표로 삼고 있습니다.

저 스스로도 내일은 더 좋은 개발자가 되자고 노력하는 만큼
제가 고민 했던 내용들을 깊이있게 전달 드리고 싶습니다.

 

면접에서 자꾸 떨어지거나, 쉬운 내용도 자신의 언어로 잘 표현하지 못하겠다는 것은 정확하게 알고 있지 않다는 의미라고도 생각합니다. 오히려 기본적인 내용, CS에 대해 "탄탄한 기본기"가 있어야, 빠르게 성장 가능하다고 믿습니다.


👇🏻문의는 아래의 이메일로 주시면 됩니다. 

we.love.code.allen@gmail.com


언어: Swift(스위프트), Python, Java, C#

Chương trình giảng dạy

Tất cả

32 bài giảng ∙ (8giờ 9phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

63 đánh giá

5.0

63 đánh giá

  • sujinnaljin님의 프로필 이미지
    sujinnaljin

    Đánh giá 3

    Đánh giá trung bình 5.0

    5

    97% đã tham gia

    이 강의를 들으시면 좋은 분들은 다음과 같습니다 - "비동기 처리"라는 말만 들으면 "ㅎ.. 큰일 났다.. 어떻게하지..?" 라고 생각하는 분 - 구글링해서 해결은 하지만, 왜 코드가 이렇게 작성되는 건지, 요구사항에 맞는 로직인건지는 전혀 모르겠는분 바로 과거의 저입니다.. ◠‿◠.. 동시성, 비동기 등을 이해하기 위해 GCD 관련 자료도 꽤 많이 찾아 읽어봤지만 이해도는 제로였고 어떤 상황에서 왜, 어떻게 쓰는지 이해하지 못한채로 계속 개발을 해왔습니다. 그러다가 회사에서 지정한 iOS 개발 필수 강의에 해당 강의가 포함되어 있길래 "이거다!" 하고 듣게 되었고, 1강을 듣자마자 알았습니다.. 이 강의는 오랫동안 미지의 영역으로 남아있던 GCD를 끝내러온 단 하나의 강의라는 것을요.. 매 강의마다 그림과 예시로 설명해주시는데.. 와.. 진짜 그림이 신의 한수고.. 그냥.. 그냥.. 최고됩니다.. 이제 해당 내용을 접하면 그림이 머리속으로 그려져요. 영역과 상관없이 제가 지금껏 수강해온 모든 온오프라인 개발 강의 중 단 하나의 강의를 꼽자면 바로 이 강의라고 자신있게 말할 수 있습니다. 궁금한 점도 질문으로 남기면 길게, 자세히, 친절히 답변해주셔서 강의를 100% 자신의 것으로 가져갈 수 있습니다. 마지막으로 해당 강의는 언어에 상관없이 비동기 / 동시성 이해하는데 큰 도움이 됩니다. 얼마 전에 자바스크립트의 async와 await 관련 글을 읽을 기회가 있었는데, 그냥 술술 읽혀서 와 진짜 이건 갓강의다.. 생각이 다시 한번 들었거든요. 튼... 한마디로 요약하자면.. "최고의 강의 추천합니다!" 앨런님 적게 일하고 많이 버시길.. 들숨에 재력을 날숨에 건강을 얻으시길...........!!!!!!!!!!!!!!!!!!!

    • 브라이언제이님의 프로필 이미지
      브라이언제이

      Đánh giá 5

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      일단 강사님께서 비전공자라 그런지 비전공자의 마음을 잘 아시고 설명하실 때 엄청! 자세하게 설명해 주셔서 너무 좋습니다.(저도 비전공자입니다.) 누구나 들어도 이해할 수 있을겁니다. 또한 어디에서도 이렇게 동기 / 비동기에 관련된 내용을 가르쳐주지 않습니다. 통신할 때 무조건 비동기를 써야 한다고 해서 쓰기만 했지, 이유에 대해선 정확히 알 수없었는데, 수업을 듣고 알게되었습니다. 하지만 공부라는게 한번만 듣는다고 완벽한 건 아니잖아요? 근데 이 강의는 한번 사두면 무제한 반복적으로 들을 수 있기에 좋습니다. 감사합니다. (마지막으로 PDF 자료라든가 코드들도 다 있어서 너무 너무 좋아요! 강추!! 개인적으로 1.25배속으로 들었습니다. 중간중간 화질이 낮아지는 현상이 있는데 그건 오른쪽 하단 설정창에 보시면 화질을 선택할 수 있습니다. 제일 높은걸로 선택하시면 다시 돌아옵니다.)

      • 이상범님의 프로필 이미지
        이상범

        Đánh giá 3

        Đánh giá trung bình 5.0

        5

        47% đã tham gia

        동기/비동기에 대한 이해가 많이 부족해서 이 강의를 선택 하였는데 현재 듣고 있는 중에도 강좌의 퀄리티가 상당하며 다음 강의는 언제 찍으실까? 라는 생각을 해보는 강좌입니다. 완전 좋습니다. 너무 추천합니다.!

        • 왈왈234님의 프로필 이미지
          왈왈234

          Đánh giá 3

          Đánh giá trung bình 5.0

          5

          100% đã tham gia

          지금껏 많은 강의를 들었지만, 대부분의 강의는 초보자를 대상으로 기초만 설명하는 강의가 대부분이었습니다. 하지만 이 강의는 기초적인 부분부터 심화까지 정말 잘 다루신 것 같고, 강의 자체가 설계부터 강의 자료 준비까지 시간을 많이 들이신 게 느껴졌습니다. 다음에 또 이런 강의를 낸다면 재밌게 들을 수 있을 것 같네요! 개인적으로 강의자분께서 함수형 프로그래밍과 Rx와 관련된 강의를 하신다면 한 번 더 결제해서 재밌게 들어볼 것 같습니다. 좋은 강의 감사합니다!

          • SGK님의 프로필 이미지
            SGK

            Đánh giá 6

            Đánh giá trung bình 5.0

            5

            100% đã tham gia

            간만에 고퀄리티 강의를 들었습니다. 어려운 주제인데 이미지를 곁들여서 쉽게 설명해 주신 부분이 인상적이었습니다. 다른 강의들 할인 할 때 본 강의는 할인을 하지 않아 섭섭 했으나 완강 후에는 당연하단 생각이 드네요. 좋은 지식 나눠 주셔서 감사하고 건승하십시오.

            1.400.821 ₫

            Khóa học khác của allen

            Hãy khám phá các khóa học khác của giảng viên!

            Khóa học tương tự

            Khám phá các khóa học khác trong cùng lĩnh vực!