Lecture overview -- Keyboard shortcut: 'u'  Previous page: Synkronisering: For lidt og for meget -- Keyboard shortcut: 'p'  Next page: Wait og notify -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  Annotated slide -- Keyboard shortcut: 't'  Alphabetic index  Help page about these notes  Course home    Samtidighed i Java - slide 35 : 41

Eksempel på et program med synkronisering: Producent og Forbruger 

Der opstår ofte et behov for at synkronisere to tråde endnu mere end blot ved 'gensidig udelukkelse' på fælles objekter

Et sådant behov opstår hvis to tråde skal samarbejde om udførelse af en opgave

 

'Producent Forbruger' er et klassisk eksempel på et samarbejde mellem to processer.

Producenten fremstiller objekter, som sendes til forbrugeren.

Forbrugeren modtager objekter, og benytter dem til et bestemt formål 

 

ProducerConsumerTest.javaProducent klassen.
 

ProducerConsumerTest.javaConsumer klassen.
 

ProducerConsumerTest.javaEn simpel udgave af cubbyhole klassen, som ikke virker.
 

ProducerConsumerTest.javaKlasse med en statisk main metode, der laver CubbyHole, og igangsætter Producer og Consumer.
 

WrongProducerConsumerOutputOutput fra kørsel af programmet ovenfor, som illustrerer problemet.
 

ProducerConsumerTest.javaEn forbedret CubbyHole klassen.
 

ProducerConsumerOutputOutput fra kørsel af programmet ovenfor.