Zkuste
http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/int
ro.html

z teto impelemntace se vychazelo pro balicek java.util.concurrent v Jave
5.

J.

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Radomir
Sent: Tuesday, August 16, 2005 3:40 PM
To: Java
Subject: Read/Write locks

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


This e-mail and any attachment is for authorised use by the intended 
recipient(s) only. It may contain proprietary material, confidential 
information and/or be subject to legal privilege. It should not be copied, 
disclosed to, retained or used by, any other party. If you are not an intended 
recipient then please promptly delete this e-mail and any attachment and all 
copies and inform the sender. Thank you.

Odpovedet emailem