Dalla versione 5.6 in poi, Perl propone una nuova
implementazione dei thread, chiamati thread dell'interprete o, più
sinteticamente ithread. Questa implementazione, ulteriormente migliorata dalla
versione 5.8 del linguaggio, prevede che ogni thread sia eseguito nel suo
interprete personale: al momento della creazione di un thread, tutti i dati
vengono copiati, a meno che non ne sia esplicitamente richiesta la
condivisione. Il programma presentato in questo tutorial simula
l'assegnazione delle palline in un tennis club. Il club ha un certo
quantitativo di palline, ed i giocatori ne richiedono un certo numero a testa.
In base ad una policy, il club assegna o meno le palline richieste, oppure ne
assegna un numero inferiore. Ogni giocatore e un thread che chiede le palline,
gioca per un certo tempo, le restituisce, attende per un certo tempo, e poi le
chiede ancora per giocare una nuova partita. Se il club non gli concede le
palline, il giocatore aspetta un certo tempo e poi riprova a
chiederle. |