Sử dụng Goroutine trong Go
Tổng quan về Goroutine trong Go
Các khái niệm cơ bản
Trước khi tìm hiểu sâu về Goroutine, chúng ta cần làm rõ một số thuật ngữ:
Quá trình (Process): Là lần thực thi của một chương trình trên hệ điều hành. Mỗi lần chạy chương trình, hệ điều hành sẽ gán cho nó một ID và tài nguyên độc lập.
Làn (Thread): Là một thực thể thuộc quá trìn ...
Đăng vào ngày 16 tháng 6 lúc 07:26
Hiểu sâu về Tiến trình, Luồng và Coroutines trong Hệ điều hành
Từ bài toán sử dụng tài nguyên đến cơ chế đa nhiệm
Khi nói đến quản lý tài nguyên hệ thống, cốt lõi nằm ở cách hệ điều hành tận dụng tối đa phần cứng như CPU, bộ nhớ, thiết bị nhập xuất. Trở lại thời kỳ máy tính lớn như IBM 7094, một phương pháp đơn giản được áp dụng: xử lý theo lô (batch processing). Người dùng ghi chương trình lên băng từ, má ...
Đăng vào ngày 14 tháng 6 lúc 06:12
Tìm hiểu sâu về cơ chế hoạt động của Thread Pool trong Java
Giới thiệu
Thread Pool là thành phần quan trọng nhất trong bộ công cụ xử lý đồng thời của Java. Hầu hết các ứng dụng yêu cầu thực thi tác vụ bất đồng bộ hoặc song song đều sử dụng Thread Pool. Việc sử dụng Thread Pool mang lại ba lợi ích chính:
Giảm thiểu tài nguyên: Tái sử dụng các thread đã được tạo ra, tránh chi phí cho việc tạo và hủy th ...
Đăng vào ngày 13 tháng 6 lúc 05:05
Hiểu và sử dụng Thread Pool trong Java
Việc tạo quá nhiều luồng (thread) có thể gây ra chi phí điều phối lớn, ảnh hưởng đến hiệu suất tổng thể và tính cục bộ của bộ nhớ đệm. Thread pool giúp khắc phục vấn đề này bằng cách khởi tạo sẵn một tập hợp các luồng, sẵn sàng nhận và thực thi tác vụ khi được CPU phân bổ. Sau khi hoàn thành công việc, các luồng này quay trở lại "hồ chứa" để ch ...
Đăng vào ngày 13 tháng 6 lúc 00:10
Sử dụng Future trong Java
Hướng dẫn sử dụng Future trong Java
Bài viết này sẽ giúp bạn hiểu cách sử dụng `Future` trong Java để xử lý các tác vụ đồng thời. Giao diện `Future` đại diện cho kết quả của một phép tính bất đồng bộ.
Các bước thực hiện
Bước
Mô tả
1
Tạo một lớp triển khai giao diện `Callable`.
2
Triển khai phương thức `call` của `Callable`.
3
Sử dụn ...
Đăng vào ngày 12 tháng 6 lúc 16:48
Xử Lý Tác Vụ Trả Về Kết Quả Với CompletableFuture.supplyAsync Trong Java
Khái Niệm Cốt Lõi
Khi làm việc với môi trường đa luồng trong Java, phương thức CompletableFuture.supplyAsync đóng vai trò quan trọng trong việc thực thi các tác vụ không chặn và trả về giá trị. Khác với runAsync chỉ thực hiện hành động mà không nhận kết quả, supplyAsync chấp nhận một hàm supplier để tính toán và trả về đối tượng CompletableFutu ...
Đăng vào ngày 12 tháng 6 lúc 07:57
Đồng bộ hóa và Xử lý Cạnh tranh trong Nhân Linux
Trong hệ thống đa luồng và đa lõi, việc đảm bảo tính toàn vẹn dữ liệu khi nhiều thực thể truy cập tài nguyên chung là một yêu cầu thiết yếu. Các cơ chế đồng bộ hóa như nguyên tử, khóa xoay, đèn hiệu và mutex cung cấp các giải pháp khác nhau tùy theo đặc điểm thời gian chiếm dụng, ngữ cảnh thực thi và mức độ an toàn cần thiết.
1. Khái niệm cơ b ...
Đăng vào ngày 8 tháng 6 lúc 19:00
Hướng Dẫn Thực Chiến Tối Ưu Hiệu Suất Gorilla/Websocket Đạt Độ Trễ Mili-Giây
Thiết lập đường chuẩn hiệu suất WebSocket
Bước đầu tiên để cải thiện phản hồi là thiết lập các chỉ số đo lường hiện tại. Thư viện gorilla/websocket cung cấp sẵn các công cụ kiểm tra hiệu năng tích hợp. Việc chạy các bài test benchmark giúp xác định rõ sự khác biệt giữa chế độ nén và không nén trong môi trường thực tế.
go test -bench=. -run=^$ . ...
Đăng vào ngày 8 tháng 6 lúc 18:35
Kiến trúc và Phương thức Triển khai Khóa Phân tán
Tính cấp thiết của Khóa Phân tán
Trong các kiến trúc hệ thống hiện đại, nơi ứng dụng được phân tán trên nhiều máy chủ, việc đồng bộ hóa tài nguyên dùng chung là một thách thức lớn. Khóa phân tán (Distributed Lock) ra đời để giải quyết vấn đề điều kiện tranh chấp (race condition), đảm bảo rằng một phương thức hoặc đoạn mã quan trọng chỉ được th ...
Đăng vào ngày 3 tháng 6 lúc 01:47
Vấn đề an toàn luồng qua ví dụ bán vé
Khi học về lập trình đa luồng, một trong những ví dụ kinh điển để minh họa vấn đề an toàn luồng chính là bán vé. Qua tình huống này, ta có thể hiểu rõ hơn về điều kiện phát sinh và cách giải quyết vấn đề an toàn luồng.
Tình huống minh họa
Trường hợp 1: Chỉ có một quầy bán vé duy nhất cho 100 vé. Vì chỉ có một luồng xử lý, nên không xảy ra ...
Đăng vào ngày 1 tháng 6 lúc 23:14