Шаблон синхронизации

У меня есть класс "Channel" с двумя определенными методами:

class Channel {

    void read(){...}
    void write(){...}
}

Есть экземпляр этого класса, используемый в многопоточной среде. Несколько потоков периодически читают из канала, а один поток периодически пишет в него. Операция чтения является потокобезопасной, поэтому несколько операций чтения могут выполняться одновременно. Однако как только начинается операция записи, потоки чтения должны быть заблокированы до завершения операции записи. Очень важно, чтобы операции чтения выполнялись как можно быстрее и не требовали ресурсоемких процедур синхронизации.

Каким будет наиболее подходящий шаблон для реализации такого поведения? Может быть, помогут java-классы или библиотеки?

5
задан andrew.z 3 February 2012 в 19:12
поделиться