Esercizio Thread

Discussione in 'Java' iniziata da mynameis, 9 Settembre 2016.

Tag (etichette):
  1. mynameis

    mynameis Nuovo Utente

    Registrato:
    9 Settembre 2016
    Messaggi:
    1
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Femmina
    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à!
     
Sto caricando...

Condividi questa Pagina