phonkworksMedlem sedan juli 2001228 inlägg
Hejhej!
Säg att man har en klass med en synkroniserad metod i vars kropp man anropar ett statiskt objekt i en annan klass. Låser man alla andra metoder i det statiska objektet när man går in i den första klassens synkroniserade metod? Eller låser man dem först när det statiska objeket anropas? Eller låser man upp det statiska objektets andra metoder överhuvudtaget?
He he, nej det är inget skolexempel. Bara ett litet moment 22 jag råkat ut för. Om det nu är ett moment 22 vill säga.
mvh
phonk
D3VaST8DMedlem sedan dec. 2000469 inlägg
Låsningar är alltid ett problem.
Du får själv avgöra vilken lösning som är bäst för dig.
Kan bara säga: Ju mer du låser desto större risk att andra objekt får vänta, även om de inte vill komma åt samma metod. Fast å andra sidan ju mindre låsning desto mer komplex låsnings mekanism får du utveckla...
sgtpepperMedlem sedan apr. 20005 524 inlägg
När en tråd anropar din synkroniserade metod så kommer ett lås att sättas på det objekt som metoden tillhör. Det statiska objektet i den andra klassen berörs inte, låset sätts på objektet med den synkroniserade metoden.
Men, eftersom låset sätts på hela objektet, så kommer alla andra synkroniserade metoder i detta objekt också att låsas.
------------------
det finns ingen.info tillgänglig.
"inside every human being there's an american trying to get out".
phonkworksMedlem sedan juli 2001228 inlägg
Ok, så jag låser inte det statiska objektets metoder(dom är inte synkroniserade). Bra! Då är jag safe.
Tack!
phonk