mutex 1 readcount; mutext 2 writecount; mutex r mutext w .
1) , :
mutex 2 writercount ()
, writercount ( mutex 2), , (writercount==1), true, mutex r - (writercount > 1) r.
mutex w () .
(writecount==1) mutex r, .
2) , :
mutex 3 ; mutex r (, r ); mutex 1, readcount ( , ), (readercount == 1), mutex w ( ).
, (, mutex w , )
(w), .
, , , ( p), , . , mutex 3 mutex r, r, .