Questa è una domanda puramente teorica in quanto non sono sicuro che le condizioni per causare questo problema sarebbero comuni.Come interrompere il thread di ritorno prima Join() è chiamato
Dire per esempio che avete un filo che si kick off con il suo metodo start:
Thread c = new Thread();
c.start();
Poi subito dopo, si chiama il metodo Join() sul filo di raccontare il metodo si è in attendere fino a quando il thread è stato eseguito per continuare.
c.join();
Non è forse una possibilità che il filo potrebbe essere eseguito e finire prima che il metodo join viene chiamato, lasciando quindi il metodo di conoscenza che ha dovuto aspettare per c per terminare prima che ha continuato? Suppongo che potresti provare a chiamare il metodo join() prima di chiamare il metodo start(), ma ogni volta che ho provato questo nei casi di test, c'è un errore.
Qualcuno sa una possibile soluzione per questo o la JVM lo gestisce? Come ho detto, non sono stato in grado di attivare questo tipo di situazione, ma teoricamente è possibile ...
Perché è un problema? –
Con le risposte che altri hanno opinato, non sarà sbagliato concludere che join() su qualsiasi altro Thread, è solo un controllo dei criteri, per il Thread chiamante. – soufrk