недобросовестные ReentrantReadWriteLock приоритеты блокировки записи и чтения

Если я правильно понимаю, если я использую fair mode

блокировки чтения и записи не имеют приоритетов, и все блокировки будут получены в порядке запроса другими потоками. После получения запроса на запись - если

Но я не уверен в несправедливом режиме. Как написано в concurrency на практике это какой-то рандом.

Но я не полностью понимаю это.

Если я правильно понимаю, то наибольшая выгода от использования RWL в том, что читатели могут читать параллельно.

Но давайте представим, что у нас много операций чтения. Допустим, несколько потоков постоянно удерживают блокировку чтения (одиночное чтение не длинное, но чтение двух соседей всегда перекрывается). И иногда происходит операция записи.

Будут ли в конечном итоге выполняться операции записи?


person gstackoverflow    schedule 10.03.2017    source источник
comment
Это говорит лучше всего: Другими словами, вполне возможно, что один поток может постоянно голодать, потому что другие потоки всегда могут произвольно получить блокировку вместо него.   -  person Sotirios Delimanolis    schedule 10.03.2017
comment
@Sotirios это может быть или это гарантировано?   -  person gstackoverflow    schedule 13.03.2017
comment
@Sotirios, отмеченная тема не повторяется.   -  person gstackoverflow    schedule 13.03.2017
comment
может быть означает может быть.   -  person Sotirios Delimanolis    schedule 13.03.2017