Lecture overview -- Keyboard shortcut: 'u'  Previous page: Trådsikre klasser -- Keyboard shortcut: 'p'  Next page: Synkroniserede konti via synchronized kommandoer -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Page 31 : 41
Forelæsningsnoter i Objekt-orienteret Programmering
Samtidighed i Java
Java's synchronized kommando

Java's synchronized kommando låser et objekt uden brug af låsemekanismen i synkroniserede metoder

Der findes en kommando i Java som låser et objekt for samtidig tilgang, på samme måde som synkroniserede metoder låser objektet, hvori de synkroniserede metoder hører til


synchronized (udtryk) 
  blok

Syntaks for en synkroniseret blok. Udtrykket evalueres. Resultatet er et objekt som låses for samtidig adgang fra andre tråde under udførelse af blokken

  • Anvendelser af synchronized

    • Blokering af ikke-trådsikker ressource i anvendelsessituationen i modsætning til definitionssituationen

      • Eksempel på næste slide

    • Introduktion af et låse objekt, som synkroniserer tilgang til en række kommandoer

      • Objektet benyttes ikke nødvendigvis i kommandoerne

Generelt forekommer det, at anvendelse af en synchronized kommando er en dårlig løsning i forhold til at bruge synchronized metoder i en klasse. Eksemplet på næste slide illustrerer denne påstand

Ved at introducere det låse objekt, hvorpå der synkroniseres med en synchronized kommando, kan man sikre udelelig adgang til en ressource fra blokke i flere tråde. Hver tråd skal blot bruge en synchronized kommando på objektet. Synkroniseringskommandoen og objektet tjener som en indgang til ressourcen, der samtidig låser for andre trådes tilgang