Tôi có hai phương pháp read()
và write()
như bên dưới trong một lớp học.đồng bộ hóa phương pháp java và đọc/ghi loại trừ lẫn nhau
class Store
{
public void write()
{
// write to store;
}
public string read()
{
// read from store;
}
}
1) Đối tượng Store
là một đơn.
2) Tôi có một lớp học Writer
sẽ ghi vào cửa hàng và một số lớp học Reader
sẽ đọc từ cửa hàng cùng một lúc.
Yêu cầu của tôi là khi người viết viết thư cho cửa hàng, tất cả người đọc phải đợi. tức là, khi kiểm soát trong write()
, tất cả các cuộc gọi đến read()
sẽ bị chặn. Làm thế nào để đạt được điều này? Tôi đã thử synchronize(Store.class)
trong phương thức write()
, nhưng dường như không hoạt động đối với tôi.
bạn không muốn đồng bộ hóa trên đối tượng lớp ('được đồng bộ hóa (foo.class)') mà thay vào trường hợp bạn đang hoạt động. – andersoj