Ahoj, nemate nekdo prosim zkusenosti s implementaci read/write locks? Potrebuju idealne nasledujici:
* kontrola pristupu threadu k objektu read/write zamek * detekce timeoutu * detekce "mtrvych" threadu, ktere drzi lock * detekce deadlocku (idealne vypnutelna, napr. pouziti jen v testovacim rezimu) * maximalne dosazitelna propustnost a bezpecnost - znacna zatez! * Java 1.4 Pro inspiraci jsem se dival na kody jako napr. toto: * http://www.concentric.net/~Ttwang/tech/rwlock.htm (existuje v nekolika variantach) tam se mi nezda (mimo jine) jedna vec, konkretne v metode lockWrite() - radky 69 a 70 - tady konci synchronized(this) a zacina synchronized(this.writerQueue). Thread detekuje, ze je objekt zamceny a prechazi na cekani. Rekneme, ze mezi temito radky jiny thread objekt odemkne, tedy zavola synchronized releaseLock(). Nic mu nebrani, zamek uvolni a zavola notify() jenomze prvni thread jeste nezacal cekat. Takze to skonci tim, ze bude zbytecne cekat - v tomto pripade 3 vteriny. * http://www.java2s.com/ExampleCode/Threads/Lockforreadandwrite.htm (opet nekolik variant) tento pristup se mi zase zda neefektivni. Napr. pri odemceni jsou "probuzeny" vzdy vsechny cekajici thready i kdyz napr. zustava zamek pro cteni a tedy thready cekajici na zapis nemohou pokracovat. JInymy slovy - neexistuje oddelena fronta cekajicich na zapis nebo na cteni. Diky! Radomir Svancer
