강의

멘토링

커뮤니티

Programming

/

Back-end

Vấn đề đồng thời đơn giản nhất - Race Condition

Học về vấn đề đồng thời điển hình là Tình trạng Cạnh tranh (Race Condition). Thực hành so sánh môi trường máy chủ đơn lẻ và môi trường phân tán gây ra vấn đề đồng thời. Có thể hiểu được ranh giới giao dịch và mức độ cô lập. Có thể học được sự khác biệt giữa khóa lạc quan, khóa bi quan và khóa phân tán.

(5.0) 5 đánh giá

50 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

  • joyopi
Docker
Docker
Spring Boot
Spring Boot
DBMS/RDBMS
DBMS/RDBMS
Redis
Redis
k6
k6
Docker
Docker
Spring Boot
Spring Boot
DBMS/RDBMS
DBMS/RDBMS
Redis
Redis
k6
k6

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

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

5.0

5.0

하나의묵

100% đã tham gia

Tôi luôn cảm thấy vấn đề đồng thời rất khó khăn, nhưng trong khóa học này, giảng viên đã giải thích từng khái niệm một cách chi tiết nên cuối cùng tôi cũng nắm bắt được. Không chỉ đề cập đến lý thuyết mà còn trực tiếp thiết lập môi trường thực hành, giúp tôi hiểu một cách tự nhiên về sự khác biệt trong cách vấn đề đồng thời xuất hiện giữa máy chủ đơn và máy chủ phân tán. Ngoài ra, vì có cấu trúc cho phép trực tiếp xác nhận quá trình phát sinh vấn đề đồng thời trong thực tế, nên tôi không chỉ ghi nhớ khái niệm một cách đơn thuần mà còn có thể cảm nhận được tại sao vấn đề này lại xảy ra, điều này đặc biệt tốt, và có nhiều nội dung có thể áp dụng ngay vào công việc thực tế nên rất hữu ích. Tôi nghĩ đây là khóa học đáng giới thiệu cho những ai cảm thấy khó hiểu về các khái niệm như optimistic lock, pessimistic lock, distributed lock, hoặc đang băn khoăn về cách giải quyết vấn đề đồng thời.

5.0

이달팽

100% đã tham gia

Trước đây tôi chỉ biết về vấn đề đồng thời ở mức lý thuyết, nhưng nhờ theo dõi gi강사님 tái hiện trực tiếp race condition ở cấp độ code và giải quyết nó, tôi đã có thể nắm chắc được cảm giác thực tế. Việc thực hành với giả định nhiều môi trường khác nhau như shared DB, distributed environment cũng rất hữu ích. 😊😊 Tôi nghĩ đây là một khóa học tốt cho những người như tôi đang bắt đầu tìm hiểu về vấn đề đồng thời. Cảm ơn giảng viên~

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

  • Nguyên nhân cơ bản của vấn đề đồng thời và phương pháp giải quyết

  • Cách giải quyết vấn đề đồng thời trong môi trường máy chủ đơn và môi trường máy chủ phân tán

  • Hiểu và sử dụng đúng cách Optimistic Lock, Pessimistic Lock và Distributed Lock

  • Hiểu về ranh giới giao dịch và mức độ cô lập

  • Cách sử dụng IntelliJ IDEA, Docker, k6

Vẫn còn bối rối về vấn đề đồng thời sao?

Với khóa học này, hãy hiểu chính xác các khái niệm và phương pháp giải quyết vấn đề đồng thời như optimistic lock, pessimistic lock, distributed lock.

  • Tạo môi trường gây ra vấn đề đồng thời để thực sự trải nghiệm các vấn đề về tính đồng thời.

  • Hãy xác nhận sự khác biệt của vấn đề đồng thời trong môi trường máy chủ đơn lẻ và môi trường máy chủ phân tán.

  • Có thể hiểu được cách sử dụng annotation @Transactional mà trước đây đã sử dụng mà không biết chính xác.

  • Vấn đề đồng thời chỉ có một nhưng tại sao lại có nhiều cách giải quyết khác nhau? Hãy xác nhận lý do.

Chúng tôi khuyến nghị cho những người như thế này

Những người nên học khóa học này (1)

Thực ra tôi vẫn chưa hiểu rõ về vấn đề đồng thời. 😅

Những người nên tham gia khóa học này (2)

Tôi không hiểu chính xác sự khác biệt giữa optimistic lock, pessimistic lock và distributed lock. 🌧️

Những người nên học khóa học này (3)

Làm thế nào để kiểm tra các vấn đề về tính đồng thời? 📜

Sau khi hoàn thành khóa học

  • Bạn có thể hiểu về tình trạng tranh chấp (Race Condition), vấn đề đồng thời xảy ra nhiều nhất trong thực tế.

  • Có thể sử dụng đúng cách annotation @Transactional mà trước đây đã sử dụng mà không hiểu rõ.

  • Có thể hiểu và giải quyết chính xác các vấn đề về đồng thời trong môi trường máy chủ đơn lẻ và môi trường máy chủ phân tán.

  • Hiểu về mức độ cô lập giao dịch và ranh giới, có thể áp dụng vào thực tế công việc.

Đặc điểm của khóa học này

Sử dụng IntelliJ IDEA để thực hành thuận tiện và cung cấp tài liệu bài giảng thông qua Notion, Github

Điểm mạnh cốt lõi của khóa học này (1)

IntelliJ có tính năng như thế này à. 😲

Gửi yêu cầu kiểm thử đến ứng dụng API đang chạy, kết nối với DB để quản lý dữ liệu và xem dữ liệu được lưu trữ trong Redis - tất cả các công việc này được thực hiện cùng lúc trong IntelliJ.

Điểm mạnh cốt lõi của khóa học này (2)

Cung cấp tài liệu giảng dạy Notion được cập nhật phản ánh theo thời gian thực.

Để bạn có thể theo dõi bài thực hành một cách dễ dàng, tôi sẽ cung cấp mã dự án thông qua liên kết GitHub.

Chúng ta sẽ học những nội dung như thế này

Lý do cơ bản của vấn đề đồng thời và phương pháp giải quyết

Bạn có biết lý do căn bản của vấn đề đồng thời không?

Nếu hiểu từ nguyên nhân căn bản và học cách giải quyết, bạn có thể hiểu và giải quyết vấn đề một cách chính xác hơn.

Trong khóa học, chúng ta sẽ bắt đầu bằng việc nắm vững khái niệm về vấn đề đồng thời.

Các phương pháp giải quyết đa dạng thực hành trong môi trường phân tán

Vấn đề đồng thời xảy ra khác nhau trong môi trường máy chủ đơn lẻ và môi trường máy chủ phân tán. Ngay cả khi áp dụng cùng một phương pháp giải quyết, vấn đề có thể không được giải quyết tùy thuộc vào môi trường.

Bạn phải biết nên sử dụng như thế nào trong môi trường nào thì mới có thể áp dụng ngay vào công việc thực tế.

Chạy đồng thời 2 ứng dụng để cấu hình môi trường phân tán.

Người tạo ra khóa học này

  • (Hiện tại) Nhà phát triển Backend tại AhnLab


Bạn có thắc mắc gì không?

Q. Chủ đề về vấn đề đồng thời cảm thấy quá khó hiểu. 🫥

Lý do vấn đề đồng thời cảm thấy khó khăn không phải vì khái niệm phức tạp, mà là vì không thể nắm bắt được cảm giác cho đến khi trực tiếp trải nghiệm trong thực tế.
Trong khóa học, chúng tôi chỉ trích xuất những khái niệm cốt lõi và giải thích tập trung vào thực hành.
Bạn có thể hiểu nhanh chóng vì có thể xác nhận ngay bằng code.

Q. Tôi vẫn chưa hiểu rõ về Spring Boot hoặc JPA. 🤦‍♀️

Bạn không cần phải hiểu sâu về Spring Boot và JPA.
Khái niệm đồng thời có thể được hiểu độc lập với framework.
Trong khóa học, chúng tôi sẽ chỉ giải thích tối thiểu những phần cần thiết và áp dụng ngay vào thực hành.
Mã nguồn dự án được sử dụng trong thực hành cũng được cung cấp qua GitHub nên bạn có thể theo dõi ngay lập tức.

Q. Vấn đề đồng thời có thường xuyên xảy ra trong thực tế không❓

Vâng, trong các dịch vụ thực tế thì điều này xảy ra thường xuyên.
Trong cấu trúc có lưu lượng truy cập lớn hoặc truy cập tài nguyên chia sẻ thì gần như chắc chắn sẽ xuất hiện.
Đặc biệt là thường xuyên xảy ra trong logic thay đổi trạng thái như giảm tồn kho, thanh toán, đặt chỗ.
Vì vậy, việc xem xét chiến lược kiểm soát đồng thời ngay từ giai đoạn thiết kế ban đầu được khuyến nghị trong thực tế.

Những lưu ý trước khi học

Môi trường thực hành của giảng viên

  • Hệ điều hành và phiên bản: Windows 11

  • Công cụ sử dụng: IntelliJ IDEA Ultimate Edition, Docker, k6, Spring Boot, DBMS/RDBMS, Redis


Kiến thức tiên quyết và lưu ý

  • Spring Boot, JPA, RDBMS

  • Khóa học này thực hành trong môi trường tạo ra nhiều yêu cầu đồng thời để thực hành các vấn đề về tính đồng thời, nhưng đây không phải là khóa học về cách xử lý khối lượng lớn yêu cầu mà không gặp vấn đề gì.

  • Tôi xin thông báo rằng phương pháp xử lý lượng lớn yêu cầu và phương pháp xử lý vấn đề đồng thời là hai chủ đề khác nhau.

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

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

  • Nhà phát triển đang băn khoăn về các vấn đề đồng thời gây nhầm lẫn liên tục và phương pháp giải quyết

  • Nhà phát triển muốn hiểu về giao dịch liên quan đến vấn đề đồng thời

  • Nhà phát triển muốn hiểu và áp dụng sự khác biệt giữa Optimistic Lock, Pessimistic Lock và Distributed Lock

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

  • Kinh nghiệm phát triển server backend API đơn giản (Spring Boot)

  • Kiến thức cơ bản về cơ sở dữ liệu (RDBMS, NoSQL)

Xin chào
Đây là

50

Học viên

5

Đánh giá

5.0

Xếp hạng

1

Khóa học

(Hiện là) Nhà phát triển Backend tại AhnLab

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

Tất cả

25 bài giảng ∙ (3giờ 54phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

5 đánh giá

5.0

5 đánh giá

  • heejaykong2906님의 프로필 이미지
    heejaykong2906

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Trước đây tôi chỉ biết về vấn đề đồng thời ở mức lý thuyết, nhưng nhờ theo dõi gi강사님 tái hiện trực tiếp race condition ở cấp độ code và giải quyết nó, tôi đã có thể nắm chắc được cảm giác thực tế. Việc thực hành với giả định nhiều môi trường khác nhau như shared DB, distributed environment cũng rất hữu ích. 😊😊 Tôi nghĩ đây là một khóa học tốt cho những người như tôi đang bắt đầu tìm hiểu về vấn đề đồng thời. Cảm ơn giảng viên~

    • joyopi
      Giảng viên

      Phản hồi rằng bạn đã nắm chắc được vấn đề đồng thời mà trước đây chỉ biết qua lý thuyết, giờ đây đã tái hiện và giải quyết trực tiếp bằng code, đối với tôi là phần vô cùng quan trọng. Bởi vì đây chính là mục tiêu lớn nhất khi tôi lên kế hoạch cho khóa học này. Hy vọng rằng việc bạn đã thực hành với các môi trường thực tế như shared DB hay distributed environment sẽ giúp ích rất nhiều cho công việc thực tế của bạn. Lời nhận xét rằng đây sẽ là một khóa học tốt cho những người mới bắt đầu với đồng thời cũng tiếp thêm động lực lớn cho tôi. Cảm ơn bạn đã để lại đánh giá tuyệt vời! 🙇

  • zepettoworld님의 프로필 이미지
    zepettoworld

    Đánh giá 4

    Đánh giá trung bình 5.0

    5

    60% đã tham gia

    • paulmoon008308님의 프로필 이미지
      paulmoon008308

      Đánh giá 111

      Đánh giá trung bình 4.9

      5

      20% đã tham gia

      • hyunwoochoi4034님의 프로필 이미지
        hyunwoochoi4034

        Đánh giá 1

        Đánh giá trung bình 5.0

        Đã chỉnh sửa

        5

        100% đã tham gia

        Tôi luôn cảm thấy vấn đề đồng thời rất khó khăn, nhưng trong khóa học này, giảng viên đã giải thích từng khái niệm một cách chi tiết nên cuối cùng tôi cũng nắm bắt được. Không chỉ đề cập đến lý thuyết mà còn trực tiếp thiết lập môi trường thực hành, giúp tôi hiểu một cách tự nhiên về sự khác biệt trong cách vấn đề đồng thời xuất hiện giữa máy chủ đơn và máy chủ phân tán. Ngoài ra, vì có cấu trúc cho phép trực tiếp xác nhận quá trình phát sinh vấn đề đồng thời trong thực tế, nên tôi không chỉ ghi nhớ khái niệm một cách đơn thuần mà còn có thể cảm nhận được tại sao vấn đề này lại xảy ra, điều này đặc biệt tốt, và có nhiều nội dung có thể áp dụng ngay vào công việc thực tế nên rất hữu ích. Tôi nghĩ đây là khóa học đáng giới thiệu cho những ai cảm thấy khó hiểu về các khái niệm như optimistic lock, pessimistic lock, distributed lock, hoặc đang băn khoăn về cách giải quyết vấn đề đồng thời.

        • joyopi
          Giảng viên

          Cảm ơn bạn rất nhiều vì đã để lại đánh giá học tập chân thành. Thực ra đồng thời là một chủ đề khó cảm nhận vì không thể nhìn thấy bằng mắt, nhưng việc bạn đã nắm bắt được qua khóa học khiến tôi tự hào với tư cách là giảng viên, và tôi rất vui vì bạn đã hiểu rõ ý định của tôi là 'trải nghiệm trực tiếp qua thực hành hơn là lý thuyết'. Bạn đã vất vả khi hoàn thành khóa học. Cảm ơn bạn! 🙇‍♀️

      • abcd123123님의 프로필 이미지
        abcd123123

        Đánh giá 327

        Đánh giá trung bình 5.0

        5

        100% đã tham gia

        Ưu đãi có thời hạn, kết thúc sau 04:43:43 ngày

        793.531 ₫

        22%

        1.028.651 ₫

        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!