Esercizio Thread

mynameis

Nuovo Utente
9 Set 2016
1
0
1
Salve a tutti, sono alle prese con un esame all'università sulla programmazione java, e ho un po' di difficoltà con la parte che riguarda i thread, o meglio la gestione di essi per evitare le race condition. Come nell'esercizio che segue:
"Implementare il metodo statico findString che accetta una stringa x e un array di stringhe a che restituisce 'vero' se x è una delle stringhe di a, e 'falso' altrimenti. Per ottenere questo risultato, il metodo usa due tecniche in parallelo: un primo thread confronta x con ciascuna stringa dell'array; un altro thread confronta solo la lunghezza di x con quella di ciascuna stringa dell'array. Il metodo deve restituire il controllo al chiamante appena è in grado di fornire una risposta certa.
Ad esempio, se il secondo thread scopre che nessuna stringa dell'array ha la stessa lunghezza di x, il metodo deve subito restituire 'falso' e terminare il primo thread (se è ancora in esecuzione)".

La prima cosa (sbagliata) che mi è venuta in mente è dichiarare una variabile volatile, e tramite il controllo di essa interrompere l'esecuzione dei thread quando si è trovata o non trovata la stringa. Ma un attimo dopo mi sono resa conto che questa cosa non poteva essere possibile in quando non posso dichiarare una variabile locale volatile. E quindi mi sono bloccata completamente.
Cerco qualche consiglio che mi possa aiutare a ragionare per la risoluzione dell'esercizio.
Grazie mille a chi mi aiuterà!