Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
BEST
Programming

/

Programming Language

Nền tảng vững chắc! Bắt đầu Java một cách quyết liệt Phần 3 (Thượng): Đa luồng và đồng bộ hóa

Bí kíp thoát khỏi trình độ gà mờ! Hướng dẫn chi tiết về lập trình đa luồng Java và kỹ thuật đồng bộ hóa!

(5.0) 23 đánh giá

504 học viên

  • nullnull8537
이론 실습 모두
Java
multithread
jvm
lock-free
generic

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

Dịch cái này sang tiếng Việt

  • Kỹ thuật lập trình đa luồng dựa trên Java

  • Mô hình bộ nhớ Java và cơ chế đồng bộ hóa, cùng với cấu trúc JVM

  • Cách triển khai hàng đợi Lock-free hiệu năng cao

Bạn sẽ có được sự hiểu biết sâu sắc ở cấp độ chuyên gia về kỹ thuật lập trình đa luồng và đồng bộ hóa.
Khả năng cạnh tranh của một nhà phát triển chỉ dựa trên kỹ năng của người đó. Khóa học này chắc chắn sẽ mang lại cho bạn lợi thế cạnh tranh!

Lên đến 'Mô hình bộ nhớ Java'
Tại sao chúng tôi đề cập sâu hơn về vấn đề này 🤔

Nếu bạn hoàn thành bài giảng này một cách đúng đắn
Dựa trên trình độ hiểu biết cao tương đương với một chuyên gia
Bạn có thể sử dụng Java .

Lập trình đa luồng và đồng bộ hóa

Tìm hiểu cách chạy nhiều luồng trong một chương trình đồng thời và về các kỹ thuật đồng bộ hóa. Bạn sẽ được học sâu mọi thứ từ những phương pháp đơn giản sử dụng từ dành riêng được đồng bộ hóa cho đến các đặc điểm của cấu trúc bên trong của JVM .

JMM(*Mô hình bộ nhớ Java)

Trong môi trường đa luồng Java, các vùng bộ nhớ được quản lý bằng cách chia chúng thành vùng bộ nhớ làm việc và vùng bộ nhớ chính . Trong quá trình này, bạn sẽ có thể hiểu ở cấp độ chuyên gia về những vấn đề có thể xảy ra khi quá trình đồng bộ hóa không thành công và những nguyên tắc nào có thể được sử dụng để giải quyết chúng .

CAS và không khóa

Tìm hiểu kỹ thuật đồng bộ hóa hiệu suất cao mà không cần chuyển mạch bằng cách tận dụng lệnh So sánh và hoán đổi (CAS) được cung cấp ở cấp CPU. Hơn nữa, bạn có thể trực tiếp triển khai và kiểm soát cấu trúc hàng đợi không khóa .

Khung Generics và Collections

Tìm hiểu về kiểu chung , vượt ra ngoài ADT và giảm đáng kể sự phụ thuộc vào kiểu dữ liệu. Kiểu chung này cho phép bạn viết các lớp có khả năng tái sử dụng cao và có thể sử dụng tốt trong khuôn khổ bộ sưu tập .

※Khoan đã! JVM là gì?
JVM (Máy ảo Java) là máy tính ảo giúp chạy các chương trình Java trên máy tính.

Đối tượng học tập


Chỉ làm theo mã thì chán lắm
Một người mới bắt đầu học lập trình cảm thấy như đầu mình chẳng còn gì cả


Là một nhà phát triển phần mềm phụ trợ
Người tìm việc muốn có việc làm


Chỉ vì nó là một ngôn ngữ được sử dụng rộng rãi
Tôi đã học nó nhưng tôi không biết bản chất
Junior developer có 1~2 năm kinh nghiệm

Lộ trình học tập 🏃🏻

Chuỗi bài học Java, bắt đầu bằng nội dung chính, bao gồm bốn phần.
Bài giảng riêng biệt 1 và 2 là những bài giảng hay để học cùng nhau nhằm phát triển thành một nhà phát triển Spring backend 🙂

  • Phần 1: Ngữ pháp cơ bản, Lập trình thủ tục

  • Phần 2: Lập trình hướng đối tượng + cấu trúc dữ liệu

  • Phần 3: Viết chương trình sử dụng hệ thống

  • Phần 4: Chuẩn bị chuyển sang Spring Framework

  • Riêng 1: Hiểu biết về Công nghệ Cơ sở hạ tầng Web và DB

  • Riêng 2: SQL nâng cao


Phần 3 chứa nhiều nội dung mà bạn phải biết để trở thành một nhà phát triển nâng cao , chẳng hạn như lập trình đa luồng và các kỹ thuật đồng bộ hóa, CAS (So sánh và hoán đổi, Đặt), cấu trúc không khóa, nhập/xuất tệp và lập trình socket. Vì có quá nhiều nội dung cần đề cập nên bài viết được chia thành phần trên và phần dưới . Phần trên đi sâu vào các kỹ thuật lập trình đa luồng dựa trên sự hiểu biết về Java Memory Model và JVM.

Bạn có thể tìm hiểu cụ thể cách thức hoạt động của nhiều ngữ pháp liên quan đến đồng bộ hóa luồng trong JVM và xây dựng nền tảng vững chắc để ứng phó với nhiều hiện tượng bất thường hoặc lỗi logic có thể xảy ra trong điều kiện chạy đua.

Sau khi nghe xong bài giảng này...

  • Bạn sẽ hiểu được các nguyên tắc về cách Máy ảo Java (JVM) và Mô hình bộ nhớ Java (JMM) hoạt động trong môi trường đa luồng. Dựa trên điều này, bạn có thể có được khả năng phản hồi trực tiếp các sự cố do lỗi đồng bộ hóa gây ra.

  • Bạn có thể tìm hiểu các nguyên tắc hoạt động cơ bản của từ khóa dành riêng được đồng bộ hóa cùng với JVM và hiểu khóa giám sát theo góc nhìn của các nguyên tắc thay vì các thuật ngữ đơn giản .

  • Bạn sẽ học cách triển khai khóa xoay bằng CAS (So sánh và hoán đổi, So sánh và đặt), điều này rất cần thiết để triển khai hệ thống đầu vào/đầu ra hiệu suất cao, cũng như cách tự mình triển khai và sử dụng hàng đợi không có khóa . Đây là những kỹ thuật lập trình trung cấp đến nâng cao mà ngay cả những người chuyên ngành khoa học máy tính cũng khó có thể tiếp cận.

  • Bạn sẽ tìm hiểu về cú pháp chung và cách sử dụng đúng khung bộ sưu tập trong môi trường đa luồng .

Java khởi đầu mạnh mẽ
Đây không chỉ là khóa học Java.

1⃣
Môi trường đa luồng
Tại sao lại cần đến nó?


  • Giải thích cách tạo môi trường đa luồng bằng cách sử dụng lớp Thread và lý do tại sao môi trường đa luồng lại cần thiết .

  • Chúng tôi giải thích lý thuyết liên quan bằng cách đưa ra ví dụ cụ thể về việc áp dụng đa luồng vào cấu trúc vòng lặp sự kiện, đây là cấu trúc chung của các ứng dụng dựa trên GUI .

  • Chúng ta cũng sẽ tìm hiểu lý do tại sao tồn tại các cấu trúc dữ liệu gây ra tình trạng chạy đua .


2⃣
JVM khi đồng bộ hóa
Bên trong và Khóa cờ


  • Bạn có thể thấy cụ thể những gì xảy ra bên trong JVM khi sử dụng các kỹ thuật đồng bộ hóa dựa trên khóa, bao gồm synchronized .

  • Bạn có thể thấy mức cải thiện hiệu suất mong đợi khi phân biệt giữa các trường hợp sử dụng các đối tượng hạt nhân được cung cấp ở cấp hệ điều hành và các trường hợp không sử dụng.

3⃣
Với Mô hình bộ nhớ Java
Hiểu các vấn đề đồng bộ hóa bộ nhớ


  • Hiểu về JMM (Mô hình bộ nhớ Java) và tìm hiểu đặc điểm hoạt động của nó.

  • Bạn có thể thấy điều gì xảy ra khi có vấn đề đồng bộ hóa giữa vùng bộ nhớ làm việc mà mỗi luồng sử dụng độc lập và bộ nhớ chính áp dụng cho toàn bộ JVM .

  • Biết thời điểm cụ thể và lý do tại sao quá trình đồng bộ hóa giữa các vùng bộ nhớ diễn ra cho phép bạn viết mã phù hợp.

4⃣
Tài liệu giảng dạy và bảng được sắp xếp hợp lý 📜


  • Toàn bộ nội dung lớp học đều dựa trên tài liệu PPT, nhưng phần giải thích được đưa ra như thể viết trên bảng trắng .

  • Điều này cho phép sinh viên hiểu toàn diện về dòng chảy của bối cảnh và lý do tạo ra cấu trúc, thay vì chỉ nhìn thấy một kết quả hoàn chỉnh .

5⃣
Mục tiêu là tạo ra sự cạnh tranh và việc làm khác biệt 💼

  • Trước khi học lập trình Java chuyên sâu, tôi muốn làm rõ rằng khóa học này hướng tới mục tiêu là việc làm .

    Dựa trên kinh nghiệm giảng dạy sâu rộng của người hướng dẫn , lộ trình học tập rõ ràng và thời gian cần thiết được trình bày .

  • Chúng tôi khuyến khích bạn thiết lập lịch trình và phân bổ thời gian học tập hợp lý ngay từ đầu để tránh lãng phí thời gian vào những lựa chọn sai lầm.

6⃣
Chi tiết cụ thể cho từng kỹ thuật
Cung cấp kết quả so sánh hiệu suất


  • Chúng tôi đi sâu vào các vấn đề đồng bộ hóa và chi phí chuyển mạch cần được xem xét trong môi trường đa luồng.

  • Nó cho thấy bằng những con số cụ thể về mức độ khác biệt về hiệu suất khi áp dụng nhiều kỹ thuật đồng bộ hóa khác nhau trong cùng một môi trường .

  • Ngay cả khi bạn áp dụng cấu trúc không khóa hiệu suất cao , bạn vẫn có thể trực tiếp gặp phải tình huống hiệu suất thực sự giảm mạnh.

7⃣
Khóa xoay và

Triển khai trực tiếp cấu trúc không khóa 🛠


  • Tìm hiểu kỹ thuật đồng bộ hóa luồng mà không cần chuyển đổi bằng cách sử dụng lệnh CAS (So sánh và hoán đổi, đặt), lệnh này rất cần thiết để xây dựng các hệ thống hiệu suất cao.

  • Bạn có thể tự triển khai hàng đợi không khóa và thử nghiệm nhiều thay đổi tình huống khác nhau để xem hiệu suất thay đổi như thế nào.

Môi trường thực hành

  • Hệ điều hành và Phiên bản (OS): Windows 11

  • Công cụ được sử dụng: IntelliJ IDEA 2024.2.3 (Phiên bản cộng đồng)

  • Thông số kỹ thuật PC: Hệ điều hành Windows 11 và IntelliJ có thể chạy mà không có bất kỳ vấn đề nào

Tài liệu học tập

  • Tài liệu PPT sử dụng trong lớp học (được cung cấp dưới dạng tệp PDF)

  • Các ví dụ và câu trả lời đầy đủ cho các bài tập thực hành thiết yếu (được cung cấp dưới dạng tệp zip)

Kiến thức và ghi chú của người chơi

  • Java Phần 1~2, bắt đầu với nền tảng vững chắc
    (※ Giả sử bạn biết tất cả về ngữ pháp cơ bản và OOP)


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

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

  • Lập trình viên Java mới vào nghề muốn có lợi thế cạnh tranh khác biệt trên thị trường việc làm

  • Dành cho những ai muốn học Java chuyên sâu dựa trên cấu trúc bên trong của JVM.

  • Dành cho những ai muốn hiểu sâu hơn về mô hình bộ nhớ Java và môi trường đa luồng.

  • Dành cho những ai muốn học các kỹ thuật lập trình Java trung cấp và cao cấp.

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

  • Hiểu về cấu trúc bên trong JVM ở mức độ Java Part 2 một cách chuyên sâu.

  • Lập trình Java

Xin chào
Đây là

36,737

Học viên

2,107

Đánh giá

1,093

Trả lời

4.9

Xếp hạng

24

Các khóa học

널널한 개발자 TV 채널 주인장이자
30년 넘게 IT기술의 바다를 항해하고 있는 개발자 입니다.  반갑습니다. ^^  

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

Tất cả

51 bài giảng ∙ (10giờ 11phú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ả

23 đánh giá

5.0

23 đánh giá

  • 별다방님의 프로필 이미지
    별다방

    Đánh giá 13

    Đánh giá trung bình 4.5

    5

    71% đã tham gia

    기다리던 part3 강의입니다. 기다린 보람이 있네요. 양질의 강의 감사합니다. 후딱 듣고 part3-2편 기대하겠습니다!

    • 널널한 개발자
      Giảng viên

      좋은 평가와 피드백 고맙습니다. 얼른 하편 준비하겠습니다. :)

  • wkdtl345님의 프로필 이미지
    wkdtl345

    Đánh giá 8

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

  • 이성혁님의 프로필 이미지
    이성혁

    Đánh giá 8

    Đánh giá trung bình 5.0

    5

    31% đã tham gia

  • 최우석님의 프로필 이미지
    최우석

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    31% đã tham gia

  • 백수취준생님의 프로필 이미지
    백수취준생

    Đánh giá 36

    Đánh giá trung bình 4.8

    5

    100% đã tham gia

1.611.840 ₫

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

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!