Tôi hiện đang tham gia khóa học lập trình đồng thời ở trường đại học của tôi và gần đây chúng tôi đã bắt đầu nói về khái niệm màn hình. Mặc dù tôi hiểu sự cần thiết của loại trừ lẫn nhau, tôi không hiểu tại sao tôi sẽ sử dụng màn hình cho điều đó.
Theo tôi hiểu, một màn hình đảm bảo rằng chính xác một hoặc không có quá trình nào nằm trong phần quan trọng mọi lúc. Chúng ta có thể đạt được chính xác điều đó với một semaphore. Hơn nữa, chúng tôi triển khai các màn hình (hoặc ít nhất một khả năng để thực hiện chúng là) với các ngữ nghĩa.
Vậy tại sao tôi lại thực hiện một cái gì đó giống hệt như một semaphore với một semaphore? Tôi nhận được những lợi ích gì?