Ciao a tutti, ho dei problemi a risolvere l'esercizio che segue:
Si consideri la seguente situazione: una strada a doppio senso di marcia ha un tratto in cui una corsia `e chiusa per dei lavori. In quel tratto di strada c’`e quindi un’unico passaggio disponibile, che dovr`a essere utilizzato per far transitare le auto provenienti dalle due opposte direzioni.
Si chiede di modellare questa situazione definendo le classi opportune, in particolare:
• una classe Passaggio per rappresentare il tratto di strada libero, che deve essere attraversato dalle auto provenienti da entrambe le direzioni.
• una classe Stop per rappresentare una corsia stradale in cui la marcia delle auto `e interrotta per regolare il transito attraverso l’unico passaggio disponibile. Pi`u in dettaglio,
– ogni oggetto della classe Stop deve contenere un elenco di automobili che attendono di poter transitare attraverso il passaggio, non appena questo si rende disponibile.
– ogni oggetto della classe Stop rappresenta un thread che, se contiene un elenco non vuoto di auto in coda, e se il passaggio `e libero, fa transitare attraverso il passaggio tutte le auto attualmente in coda.
• una classe Avvio che avvia il programma costruendo e attivando due oggetti di tipo Stop che vogliono regolare il transito attraverso lo stesso Passaggio. Il programma deve concorrentemente simulare l’arrivo di un certo numero di auto da entrambe le direzioni.
Ho provato in tanti modi, ma continuo ad avere un problema:
- Come fare la parte che dice "Il programma deve concorrentemente simulare l’arrivo di un certo numero di auto da entrambe le direzioni.".
La parte sul passaggio alternato delle auto è semplice (basta sincronizzarsi sul Passaggio), ma l'altra parte proprio non riesco.
Sarà una cavolata, ma sono giorni che ci sto sopra e, forse per la stanchezza, non riesco ad uscirne.
Vi chiedo quindi un aiuto, non pretendo il codice, ma idee che mi sblocchino da questo stallo.
Restando in tema di thread mi serve un notify().
Grazie mille
Max

Rispondi quotando