Trả lời

6

lịch sự http://sreekalyan.blogspot.com/2007/01/thread-safe-and-thread-aware.html

Chủ đề Aware Tại bất kỳ thời điểm nào, tại hầu hết một thread có thể hoạt động trên các đối tượng. Các đối tượng là nhận thức được các chủ đề xung quanh nó và bảo vệ chính nó khỏi các chủ đề bằng cách đặt tất cả các chủ đề trong một hàng đợi. Vì chỉ có thể có một chuỗi hoạt động trên đối tượng tại bất kỳ thời điểm nào, đối tượng sẽ luôn giữ nguyên trạng thái của nó. Sẽ không có bất kỳ vấn đề đồng bộ hóa nào.

Chủ đề an toàn: Tại một thời điểm nhất định, nhiều chủ đề có thể hoạt động trên đối tượng. Đối tượng biết cách xử lý chúng. Nó có quyền truy cập đồng bộ đúng vào các tài nguyên được chia sẻ của nó. Nó có thể lưu giữ dữ liệu trạng thái của nó trong môi trường đa luồng này (nghĩa là nó sẽ không rơi vào trạng thái trung gian và/hoặc không xác định). Sử dụng đối tượng này trong môi trường đa luồng là an toàn.

Sử dụng đối tượng không nhận biết luồng và không an toàn chỉ có thể dẫn đến dữ liệu ngẫu nhiên và không chính xác và ngoại lệ bí ẩn (do cố gắng truy cập đối tượng khi chủ đề đang sử dụng và không ổn định) ở giữa trạng thái ngay khi truy cập chuỗi thứ hai).

1

Tôi sẽ tin rằng một chức năng thực hiện khóa mutex riêng của nó là chuỗi an toàn, nhưng có lẽ không phải là luồng nhận biết.

Các vấn đề liên quan