Mục lục:
Định nghĩa - Đồng bộ hóa luồng có nghĩa là gì?
Đồng bộ hóa luồng là việc thực hiện đồng thời hai hoặc nhiều luồng chia sẻ các tài nguyên quan trọng. Chủ đề nên được đồng bộ hóa để tránh xung đột sử dụng tài nguyên quan trọng. Mặt khác, xung đột có thể phát sinh khi các luồng chạy song song cố gắng sửa đổi một biến chung cùng một lúc.
Techopedia giải thích đồng bộ hóa chủ đề
Để làm rõ đồng bộ hóa luồng, hãy xem xét ví dụ sau: ba luồng - A, B và C - được thực thi đồng thời và cần truy cập tài nguyên quan trọng, Z. Để tránh xung đột khi truy cập Z, luồng A, B và C phải được đồng bộ hóa . Do đó, khi A truy cập Z và B cũng cố gắng truy cập Z, phải tránh truy cập Z của B bằng các biện pháp bảo mật cho đến khi A kết thúc hoạt động và ra khỏi Z.
Trong Java, hai chiến lược đồng bộ hóa được sử dụng để ngăn chặn sự can thiệp của luồng và lỗi nhất quán bộ nhớ:
- Phương pháp đồng bộ hóa: Bao gồm từ khóa được đồng bộ hóa trong khai báo. Khi một luồng gọi một phương thức được đồng bộ hóa, phương thức được đồng bộ hóa sẽ tự động lấy khóa nội tại cho đối tượng của phương thức đó và giải phóng nó khi phương thức đó trả về, ngay cả khi trả về đó là do ngoại lệ chưa được tạo ra.
- Tuyên bố được đồng bộ hóa: Khai báo một khối mã được đồng bộ hóa. Không giống như các phương thức được đồng bộ hóa, các câu lệnh được đồng bộ hóa phải chỉ định các đối tượng cung cấp khóa nội tại. Các báo cáo này rất hữu ích để cải thiện đồng thời với đồng bộ hóa chi tiết, vì chúng cho phép tránh việc chặn không cần thiết.