Skip to main content

Mutex là gì?

Một đối tượng loại trừ lẫn nhau, hoặc mutex, là một đối tượng được tạo để sử dụng trong các chương trình máy tính.Chức năng thiết yếu của mutex là giúp một luồng nhiều chương trình có thể sử dụng một tài nguyên duy nhất.Nói chung, chức năng của các đối tượng loại trừ lẫn nhau là cho phép việc sử dụng một tài nguyên duy nhất này bằng cách tạo môi trường trong đó quyền truy cập vào tài nguyên được truyền qua lại giữa các khía cạnh khác nhau của chương trình.Quá trình kích hoạt và tạo MUTEX diễn ra khi ứng dụng chương trình máy tính được mở.Về cơ bản, chương trình sẽ tạo ra mutex và liên kết nó với một tài nguyên cụ thể cần thiết cho chức năng hiệu quả của chương trình mở.Vì các tài nguyên được gọi ra, hệ điều hành sẽ gán một tên duy nhất cho mutex và sử dụng nó để xác định quy trình miễn là chương trình vẫn mở.Một khi mutex được kích hoạt và đặt tên cho phiên, bất kỳ luồng nào khác của chương trình yêu cầu tài nguyên này có thể có quyền truy cập, mặc dù tài nguyên đã được sử dụng tích cực bởi một luồng khác.Bằng cách chỉ ra nhu cầu về tài nguyên, hàm mutex sẽ bắt đầu thay thế truy cập tài nguyên qua lại giữa các luồng.Đối với người dùng cuối, quá trình này là minh bạch.Đối với tất cả các ý định và mục đích thực tế, có vẻ như hai người dùng hoặc hai chủ đề đang làm cho chúng ta cùng một nguồn tài nguyên.

Mặc dù tốc độ chuyển giao truy cập nhanh đến mức nó thậm chí không đáng chú ý đối với người dùng cuối, cần lưu ý rằng bất cứ khi nào một tài nguyên được sử dụng, nó sẽ bị khóa thực sự với một luồng trong chuỗi.Một chủ đề khác yêu cầu sử dụng tài nguyên sẽ đưa ra yêu cầu sẽ vào hàng đợi và ở đó cho đến khi chủ đề đầu tiên kết thúc với việc sử dụng hoạt động.Tại thời điểm đó, tài nguyên được mở khóa và hàm mutex cho phép luồng tiếp theo trong truy cập hoạt động hàng đợi.Nếu một luồng thứ ba đang hoạt động và cần tài nguyên, MUTEX cũng sẽ xếp luồng này vào hàng đợi và cấp quyền truy cập trên cơ sở xoay.