LE 8 Threads - Synchronisatieproblemen

5 belangrijke vragen over LE 8 Threads - Synchronisatieproblemen

Waar moet je op letten als je een klasse gebruikt en je maakt gebruik van meerdere draden?

Dat de klasse al dan niet synchronisatie ondersteunt. Bv de klasse ArrayList heeft geen standaardvoorziening voor synchronisatie dit moet je dus zelf inbakken. De (oudere) klasse Vector heeft wel een ingebouwd synchronisatiemechanisme.

Wat gebeurt er als een draad een methode op een synchronized klasse aanroept?

Dan gaat deze methode als het ware op slot. Een andere draad die deze methode aanroept op dezelde instantie wordt geblokkeerd tot dat het slot er afgaat. En dat gebeurt pas als de eerste draad klaar is met de methode. Ook als deze eerste draad door de scheduler wordt onderbroken blijft het slot dicht.

Wat is een synchronized methode?

Dat is een methode die eenmaal aangeroepen op een instantie van een bepaalde klasse door een draad is afgesloten voor alle andere draden die toegang willen hebben tot deze of andere synchronized methoden binnen dezelfde instantie.
  • Hogere cijfers + sneller leren
  • Niets twee keer studeren
  • 100% zeker alles onthouden
Ontdek Study Smart

Waarom leiden lokale variabelen en parameters nooit tot problemen bij het gebruik van draden?

Omdat draden altijd hun eigen call stack  maken en afhandelen. Parameters en lokale variabelen worden dus nooit gedeeld tussen verschillende draden.

Is de Swing package thread safe?

Nee. Om problemen te vermijden mag alleen de draad waarbinnen event handling plaats vindt iets veranderen aan een Swing component.

De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:

  • Een unieke studie- en oefentool
  • Nooit meer iets twee keer studeren
  • Haal de cijfers waar je op hoopt
  • 100% zeker alles onthouden
Onthoud sneller, leer beter. Wetenschappelijk bewezen.
Trustpilot-logo