Ik zat een beetje vast met volgende java-applicatie..
volgende situatie:
Classes : PutAndTake (Frame)
PATLabel (de 2 buitendste componenten)
PATCanvas (de middelste component)
Op beide PATLabels loopt een Thread.
Gedurende 300 milliseconden zie je het woordje “PUT” of “TAKE”.
Daarna wacht je een random tijd tussen 1 en 5 seconden (voor beide threads verschillend).
PUT : We voegen een OvalShape-object toe achteraan onze array. dus gewoon een oval in de canvas.
TAKE : We nemen het laatste OvalShapeG-object uit onze array.
Dit betekent dat we moeten controleren dat de “put” en “take” niet gelijktijdig gebeurt. (synchronized)
En dat we moeten controleren dat we niet meer elementen in onze array proberen te steken dan mogelijk en dat als onze array leeg is we geen elementen er mogen uithalen.
Dus eigenlijk moeten we met 2 threads, verschillende dingen laten uitvoeren (put & take).
Maar we kunnen maar 1 run-method gebruiken.
Op welke manier zou dit opgelost moeten worden??
volgende situatie:
Classes : PutAndTake (Frame)
PATLabel (de 2 buitendste componenten)
PATCanvas (de middelste component)
Op beide PATLabels loopt een Thread.
Gedurende 300 milliseconden zie je het woordje “PUT” of “TAKE”.
Daarna wacht je een random tijd tussen 1 en 5 seconden (voor beide threads verschillend).
PUT : We voegen een OvalShape-object toe achteraan onze array. dus gewoon een oval in de canvas.
TAKE : We nemen het laatste OvalShapeG-object uit onze array.
Dit betekent dat we moeten controleren dat de “put” en “take” niet gelijktijdig gebeurt. (synchronized)
En dat we moeten controleren dat we niet meer elementen in onze array proberen te steken dan mogelijk en dat als onze array leeg is we geen elementen er mogen uithalen.
Dus eigenlijk moeten we met 2 threads, verschillende dingen laten uitvoeren (put & take).
Maar we kunnen maar 1 run-method gebruiken.
Op welke manier zou dit opgelost moeten worden??