Vad betyder synkroniserad i java

Java synkroniserade block Java ger ett sätt att skapa trådar och synkronisera sina uppgifter med hjälp av synkroniserade block. Ett synkroniserat block i Java synkroniseras på något objekt.

Synkroniserat block i java

Alla synkroniserade block synkroniseras på samma objekt och kan bara ha en tråd utförd inuti dem åt gången. Alla andra trådar som försöker komma in i det synkroniserade blocket blockeras tills tråden inuti det synkroniserade blocket lämnar blocket.

Synkroniserade block i Java markeras med nyckelordet synchronized. Endast en tråd kan äga en bildskärm åt gången.

Synkroniserad klass i Java Gilla artikel som Flertrådade program kan ofta komma till en situation där flera trådar försöker komma åt samma resurser och slutligen producera felaktiga och oförutsedda resultat. Varför använda Java Synchronization?

vad betyder synkroniserad i java

När en tråd förvärvar ett lås sägs den ha gått in i monitorn. Alla andra trådar Försök att komma in i den låsta bildskärmen kommer att avbrytas tills den första tråden lämnar monitorn. Det är inte meningsfullt att synkronisera konstruktorer eftersom endast tråden som skapar ett objekt ska ha åtkomst till det medan det konstrueras. Varning: När du konstruerar ett objekt som ska delas mellan trådar, var mycket försiktig så att en referens till objektet inte "läcker" i förtid.

Synkroniserad metod jämfört med synkroniserat block

Anta till exempel att du vill underhålla en List med namnet instanser som innehåller alla förekomster av klassen.

Du kanske frestas att lägga till följande rad i konstruktorn: instanser. Synkroniserade metoder möjliggör en enkel strategi för att förhindra trådinterferens och minneskonsekvensfel: om ett objekt är synligt för mer än en tråd görs alla läsningar eller skrivningar till objektets variabler via synkroniserade metoder. Ett viktigt undantag: slutliga fält, som inte kan ändras efter att objektet har konstruerats, kan säkert läsas genom icke-synkroniserade metoder, när objektet är konstruerat Denna strategi är effektiv, men kan ge problem med liveness , som vi kommer att se senare i den här lektionen.