Ciao!
E' possibile secondo voi passare via socket un riferimento a un Thread avendo serializzato la classe che estende Thread??
Ciao!
E' possibile secondo voi passare via socket un riferimento a un Thread avendo serializzato la classe che estende Thread??
Si è possibile farlo utilizzando i flussi di oggetti (ObjectOutputStream e ObjectInputStream).Originariamente inviato da samirol
Ciao!
E' possibile secondo voi passare via socket un riferimento a un Thread avendo serializzato la classe che estende Thread??
Ma passare un intero processo, a cosa ti serve?
Ho bisogno di interrompere un thread da un altro thread...e l'unico modo che mi è venuto in mente è quello...però non funziona perkè nel momento in cui passo il riferimento con ObjectOutputStream mi solleva l'eccezione
java.io.NotSerializableException: java.io.BufferedReader
Il codice che solleva l'eccezione è:
codice:objectToServer.writeObject(this);
Posta un po' di codice e spiega meglio quello che intendi fare..Originariamente inviato da samirol
Ho bisogno di interrompere un thread da un altro thread...e l'unico modo che mi è venuto in mente è quello...
Per capirci meglio...
Partono due main, due applicazioni...uno in attesa di una comunicazione socket (server) e l'altro client che fa partire un thread che si collega alla socket server.
il Server appena accetta la comunicazione del client fa partire un thread per gestire la comunicazione...Quindi una semplice implementazione di un server multithread!
A questo punto ho bisogno ke il thread server uccida il thread client ma nessuno dei due ha un riferimento l'uno dell'altro. L'unica cosa che li lega è la socket!
Per questo avevo pensato di passare il riferimento del thread client al thread server in modo che potesse ucciderlo!
Ma quel codice mi solleva quell'eccezione!
Problema risolto...il BufferReader non è serializzabile e io ce l'avevo come variabile privata!
Ora devo capire come funziona il metodo interrupt() perchè mi sembra un po' ostico!
scusa non puoi tenerti in qualche modo il pid del thread e killarlo brutalmente? oppure inviare all'altro processo un messaggio che ne chieda l'interrupt (quindi tentando la normale terminazione?)
Il problema è proprio il "killarlo brutalmente"! Sto diventando matta a cercare un metodo che lo faccia!!!
Quindi ti conviene chiudere la connessione aperta su quella socket con quel thread.Originariamente inviato da samirol
A questo punto ho bisogno ke il thread server uccida il thread client ma nessuno dei due ha un riferimento l'uno dell'altro. L'unica cosa che li lega è la socket!