Các chuỗi semaphores có an toàn không?

Các chuỗi semaphores có an toàn không?
Các chuỗi semaphores có an toàn không?
Anonim

Semaphoreslà chuỗi an toànnhư được giải thích trong javadoc: Hiệu ứng nhất quán bộ nhớ: Các hành động trong một chuỗi trước khi gọi phương thức "phát hành" chẳng hạn như phát hành trước các hành động sau một phương thức "thu thập" thành công chẳng hạn như thu được trong một luồng khác. Hầu hết các thao tác trên các đối tượng trong java.

Semaphores có ngăn cản cuộc đua không?

Không, hoạt động khóaxảy ra nguyên tử. Toàn bộ bị khóa sẽ không được thực thi nguyên tử. Và hãy nhớ rằng, các chuỗi chia sẻ một không gian địa chỉ chung và tất cả đều bị ràng buộc với một quy trình.

Sử dụng chỉ có an toàn không?

AĐối tượng MessageServicelà bất biến một cách hiệu quả vì trạng thái của nó không thể thay đổi sau khi xây dựng. Do đó, nó an toàn theo luồng. Hơn nữa, nếu MessageService thực sự có thể thay đổi, nhưng nhiều chuỗi chỉ có quyền truy cập chỉ đọc vào nó, thì nó cũng an toàn cho chuỗi.

Chuỗi có an toàn và đồng bộ không?

Thread safe có nghĩa là: phương thức trở nên an toàn khi được nhiều chủ đề truy cập mà không gặp bất kỳ sự cố nào cùng một lúc.từ khóa đồng bộlà một trong những cách để đạt được 'an toàn chủ đề'. Nhưng hãy nhớ rằng: Trên thực tế, trong khi nhiều chuỗi cố gắng truy cập vào phương pháp đồng bộ hóa, chúng sẽ tuân theo thứ tự để truy cập an toàn.

Semaphores có công bằng không?

Nói chung, các semaphoresđược sử dụng để kiểm soát truy cập tài nguyên phải được khởi tạo dưới dạng hợp lý, để đảm bảo rằng không có luồng nào bị bỏ đói khi truy cập tài nguyên. Khi đang sử dụngsemaphores cho các loại điều khiển đồng bộ hóa khác, lợi thế thông lượng của việc sắp xếp không công bằng thường vượt trội hơn các cân nhắc về tính công bằng.

Đề xuất: