Ciao a tutti,
ho un piccolo problema.
Nel mio programma sto gestendo un thread ma non riesco a interromperne l'esecuzione.
Posto di seguito il codice:
nel main faccio partire il thread
codice:istanza.getVeicoli().get(0).start();
codice:public void run() { while(!stopThread) { try { esecuzione(); } catch (CloneNotSupportedException e) { // TODO Auto-generated catch block e.printStackTrace(); this.stopRunning(); } } }
e il metodo stopRunning è il seguente
codice:public void stopRunning() { stopThread = true; }
Nel metodo esecuzione() è racchiuso il comportamento del thread tra cui la chiamata a un metodo synchronized che non è della classe del thread ma di un'altra classe. Mi spiego meglio: il thread è della classe Veicolo, mentre il metodo synchronized è della classe Istanza. La classe Istanza contiene tra i suoi attributi un certo numero di Veicolo.
Una cosa che capisco poco è inoltre questa: fatta partire l'esecuzione del main, in realtà prima mi stampa le azioni che sono scritte successivamente all'avvio del thread. Come mai questo avviene?

Rispondi quotando
