Ho provato a fare così e anche ad utilizzare la funzione stop(), ma il thread non termina. Posto una parte di nuovo codice che ho scritto, magari è un pò meglio dello schifo che avevo fatto prima 
codice:
//Metodo per avviare il quiz public void avviaGioco(){ //Richiesta dei nomi dei concorrenti sock.richiediNome(); this.gd.richiediNome(); //ciclo for per effettuare le 10 domande for (int i=1;i<=11;i++){ //Metodo per l'invocazione dell'i-esima domanda this.gd.domanda(i); //Metodo per inviare la domanda al Client this.sock.inviaDomanda(); //Creazione dei Thread di controllo input s = new ControlloSocket(gd,sock,i); t = new ControlloTastiera(gd,i); //Avvio dei Thread s.start(); t.start(); //Attesa per prenotazione concorrente try{ this.gd.semaforoConduttore.acquire(); }catch (Exception e){} //Controllo appartenenza prenotazione, blocco prenotazione avversaria e risposta if (this.gd.prenotato.equals("c0")){ try{ s.interrupt(); }catch(Exception e){} this.sock.prenota(1); this.gd.rispondi(); this.sock.scriviClient(this.gd.s0); this.sock.scriviClient(this.gd.s1); }else{ if(this.gd.prenotato.equals("c1")){ try{ t.interrupt(); }catch(Exception e){} System.out.println("Spiacente, l'avversario si è prenotato"); this.sock.rispondi(); }else{ System.out.println("Tempo scaduto!"); s.interrupt(); t.interrupt(); this.sock.prenota(2); } }
la run() di ControlloTastiera():
codice:
public void run(){ while(!this.isInterrupted()){ try{ if (this.gd.leggiTastiera().equals("")){ this.interrupt(); this.gd.prenotato = "c0"; this.gd.semaforoConduttore.release(); } }catch(Exception e){System.out.println(e);} } }
e la run() di ControlloSocket():
codice:
public void run(){ while(!this.isInterrupted()){ try { if (this.s.leggiClient().equals("prenota")){ this.interrupt(); this.gd.prenotato = "c1"; this.gd.semaforoConduttore.release(); } } catch (Exception e){System.out.println(e); } } }
penso che il problema sia dovuto al fatto che le funzioni per acquisire da tastiera e dalla socket siano funzioni bloccanti... mi sapreste consigliare? esiste un modo per renderle non bloccanti?